eupolicy.social is one of the many independent Mastodon servers you can use to participate in the fediverse.
This Mastodon server is a friendly and respectful discussion space for people working in areas related to EU policy. When you request to create an account, please tell us something about you.

Server stats:

219
active users

#swagger

0 posts0 participants0 posts today
happyborg<p>Having played a bit I'm now adding <a href="https://fosstodon.org/tags/OpenAPI" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>OpenAPI</span></a> docs with <a href="https://fosstodon.org/tags/Swagger" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Swagger</span></a> UI to <a href="https://fosstodon.org/tags/Autonomi" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Autonomi</span></a> dweb using <a href="https://fosstodon.org/tags/utoipa" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>utoipa</span></a> and <a href="https://fosstodon.org/tags/utoipauto" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>utoipauto</span></a>.</p><p>EDIT: switched from <a href="https://fosstodon.org/tags/utoipauto" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>utoipauto</span></a> to <a href="https://fosstodon.org/tags/utoipa_actix_web" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>utoipa_actix_web</span></a></p><p>I'm neither a user nor, until now a builder of HTTP APIs so stumbling around, but these crates do a decent job of being usable even to a novice.</p><p>I really shouldn't be let loose with all this :rofl: </p><p><a href="https://fosstodon.org/tags/Rustlang" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Rustlang</span></a> <a href="https://fosstodon.org/tags/REST" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>REST</span></a> <a href="https://fosstodon.org/tags/WebAPI" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>WebAPI</span></a></p>
Markus Eisele<p>Unlock the Power of Your APIs: A Hands-On Introduction to Quarkus OpenAPI with Swagger<br>Effortless API Documentation in Quarkus: Getting Started with OpenAPI <br><a href="https://open.substack.com/pub/myfear/p/unlock-the-power-of-your-apis-a-hands" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">open.substack.com/pub/myfear/p</span><span class="invisible">/unlock-the-power-of-your-apis-a-hands</span></a><br><a href="https://mastodon.online/tags/Quarkus" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Quarkus</span></a> <a href="https://mastodon.online/tags/Java" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Java</span></a> <a href="https://mastodon.online/tags/OpenAPI" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>OpenAPI</span></a> <a href="https://mastodon.online/tags/Swagger" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Swagger</span></a> <a href="https://mastodon.online/tags/API" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>API</span></a></p>
Fabio Manganiello<p>I’ve recently taken a closer look at the <a class="hashtag" href="https://manganiello.social/tag/foursquare" rel="nofollow noopener noreferrer" target="_blank">#Foursquare</a> <a class="hashtag" href="https://manganiello.social/tag/api" rel="nofollow noopener noreferrer" target="_blank">#API</a> (updating the long unmaintained Platypush plugin, details on why coming soon).</p><p>At first their new API versioning schema seemed a bit confusing (why would anyone use arbitrary <code>YYYYMMDD</code> strings as versions?), but a closer look at how they implemented it revealed a quite clever design decision:</p><blockquote><p>Versioning is controlled by the <code>v</code> parameter, which is a date that represents the “version” of the API for which you expect from Foursquare. It is designed to give developers the freedom to adapt to Foursquare API changes on their own schedule. The value of the v parameter is a date in YYYYMMDD format that lets you tell us “I’m prepared for API changes up to this date.”</p></blockquote><p>You know when you look at an engineering decision that is so elegant and obvious that you think “damn, how could nobody think of this before?”</p><p>Nearly two decades spent managing <code>/v1</code>, <code>/v2</code>, <code>/v2.5</code>, <code>/v2.almost3</code>, <code>/v3</code>, managing migrations and deprecations, documenting breaking changes, introducing exponentially thicker layers of schemas and converters, and the obvious solution was just there under our nose.</p><p>Why don’t you just start with defining the base schemas of your API objects at the time of their first release, and then every time you add, modify or delete a field, or change some return type, or add a value to an enum, you just version the change with a timestamp?</p><p>Let the developer say “I understand the language that your API spoke 3 months ago”, and you just dynamically create the schemas, GraphQL or ORM snippets to parse requests and responses as of that date.</p><p>No more breaking changes. No more forced migrations. No more boilerplate to explicitly convert payloads across different API versions.</p><p>You construct the response by first applying the base schema, and then gradually patching it - just like you would do with a git rebase, or an ORM migration tool.</p><p>A downside may probably be that you can never really delete a column from the db if it was ever used by any version of your API.</p><p>And a challenge may also be to adapt tools like <a class="hashtag" href="https://manganiello.social/tag/openapi" rel="nofollow noopener noreferrer" target="_blank">#OpenAPI</a> / <a class="hashtag" href="https://manganiello.social/tag/swagger" rel="nofollow noopener noreferrer" target="_blank">#Swagger</a> that were designed around static schemas to also work with “dynamically versioned” selections.</p><p>But to me the problems it solves far outweight the downsides.</p><p><a href="https://docs.foursquare.com/developer/reference/versioning" rel="nofollow noopener noreferrer" target="_blank">https://docs.foursquare.com/developer/reference/versioning</a></p>
Matthias<p><a href="https://graz.social/@linos" class="u-url mention" rel="nofollow noopener noreferrer" target="_blank">@linos@graz.social</a> <a href="https://ibe.social/tags/Forgejo" rel="nofollow noopener noreferrer" target="_blank">#Forgejo</a><span> has the option to create a release via API call:<br></span><a href="https://forgejo.org/docs/latest/user/releases/#creating-a-release-through-the-api" rel="nofollow noopener noreferrer" target="_blank">https://forgejo.org/docs/latest/user/releases/#creating-a-release-through-the-api</a><span><br><br>Since </span><a href="https://ibe.social/tags/Codeberg" rel="nofollow noopener noreferrer" target="_blank">#Codeberg</a><span> is just a branded Forgejo instance, this should work there as well...I hope so at least.<br><br>So instead of manually creating a release from a tag on the releases page, you could try creating one with a custom </span><a href="https://ibe.social/tags/CI" rel="nofollow noopener noreferrer" target="_blank">#CI</a><span> action/pipeline.<br><br>There is </span><a href="https://ibe.social/tags/Swagger" rel="nofollow noopener noreferrer" target="_blank">#Swagger</a><span> UI available for the Forgejo API, so you can easily check out all options. As far as I can see you can specify the name of the release and its assets.<br><br></span><a href="https://ibe.social/tags/CICD" rel="nofollow noopener noreferrer" target="_blank">#CICD</a> <a href="https://ibe.social/tags/Pipelines" rel="nofollow noopener noreferrer" target="_blank">#Pipelines</a></p>
Miguel Afonso Caetano<p>"A handful of root causes are likely behind API drift. One standout point is the simple fact that API documentation is typically incomplete. Only 10% of organizations fully document their APIs, found a 2023 EMA report. Without a strong documentation culture or comprehensive API inventory management, it’s more common to see a disorganized use of service descriptions.</p><p>Furthermore, many groups are still early on in their API governance strategies. As the number of APIs increases within a company, those without established standards for maintaining the API lifecycle are more likely to experience incompatibilities or even see services turn into shadow or zombie APIs.</p><p>According to Lorna Mitchell, VP of Developer Experience at Redocly, API drift is intrinsically tied to a lack of comprehensive testing. Drift can occur for design-first APIs if there aren’t clear tests of whether what is built actually matches what’s described. This is a problem that can easily become endemic, she says. “Code gets duplicated, and the chasm widens.”"</p><p><a href="https://nordicapis.com/understanding-the-root-causes-of-api-drift/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">nordicapis.com/understanding-t</span><span class="invisible">he-root-causes-of-api-drift/</span></a></p><p><a href="https://tldr.nettime.org/tags/APIs" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>APIs</span></a> <a href="https://tldr.nettime.org/tags/APIDesign" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>APIDesign</span></a> <a href="https://tldr.nettime.org/tags/APIDocumentation" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>APIDocumentation</span></a> <a href="https://tldr.nettime.org/tags/APIDrift" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>APIDrift</span></a> <a href="https://tldr.nettime.org/tags/SoftwareDevelopment" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>SoftwareDevelopment</span></a> <a href="https://tldr.nettime.org/tags/Programming" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Programming</span></a> <a href="https://tldr.nettime.org/tags/TechnicalWriting" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>TechnicalWriting</span></a> <a href="https://tldr.nettime.org/tags/OpenAPI" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>OpenAPI</span></a> <a href="https://tldr.nettime.org/tags/Swagger" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Swagger</span></a></p>
Matthias Andrasch<p>Has somebody by chance already added OpenAPI/Swagger to <a href="https://social.tchncs.de/tags/CraftCMS" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>CraftCMS</span></a> Commerce controller actions? I'm looking for some input/ideas for implementation: <a href="https://discord.com/channels/456442477667418113/456442884258922529/1284060537843355700" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">discord.com/channels/456442477</span><span class="invisible">667418113/456442884258922529/1284060537843355700</span></a> </p><p><a href="https://social.tchncs.de/tags/craftcms" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>craftcms</span></a> <a href="https://social.tchncs.de/tags/craftcommerce" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>craftcommerce</span></a> <a href="https://social.tchncs.de/tags/swagger" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>swagger</span></a> <a href="https://social.tchncs.de/tags/php" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>php</span></a> <a href="https://social.tchncs.de/tags/openapi" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>openapi</span></a></p>
Nikita Karamov<p>TIL that, if you push an <a href="https://fosstodon.org/tags/OpenAPI" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>OpenAPI</span></a> YAML spec file to a <a href="https://fosstodon.org/tags/GitLab" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>GitLab</span></a> repository, you get the full, *interactive* <a href="https://fosstodon.org/tags/Swagger" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Swagger</span></a> UI rendered in the web preview 🤯</p>
Jeroen-bart Engelen<p>Is my understanding correct that with ASP.NET Core Web API minimal API's, you can't use Swagger in an easy way? No attributes. You'll have to manually create all the OpenAPI objects in order to add documentation on your input and output parameters?<br><a href="https://mastodon.nl/tags/DotNet" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>DotNet</span></a> <a href="https://mastodon.nl/tags/ASPNETCore" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ASPNETCore</span></a> <a href="https://mastodon.nl/tags/Swagger" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Swagger</span></a> <a href="https://mastodon.nl/tags/OpenAPI" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>OpenAPI</span></a></p>