# Swagger

Published articles for Swagger.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## The thoroughness of Tom Johnson's free Documenting API's course on OpenAPI 3.0 and Swagger UI

DevFeed: [The thoroughness of Tom Johnson's free Documenting API's course on OpenAPI 3.0 and Swagger UI](<https://devfeed.tech/articles/the-thoroughness-of-tom-johnson-s-free-documenting-api-s-course-on-openapi-3-0-and-swagger-ui-22428.md>)

Original publisher: [Read original article](<https://www.tjmaher.com/2026/09/the-thoroughness-of-tom-johnsons-free.html>)

Author: T.J. Maher (noreply@blogger.com)

Published: 2026-09-09T21:17:32Z

Content type: article

Language: en

Sources: [T.J. Maher](<https://devfeed.tech/sources/t-j-maher.md>)

Topics: [OpenAPI Specification](<https://devfeed.tech/topics/openapi.md>), [Documentation](<https://devfeed.tech/topics/documentation.md>), [REST API](<https://devfeed.tech/topics/rest-api.md>), [Swagger](<https://devfeed.tech/topics/swagger.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [Postman](<https://devfeed.tech/topics/postman.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [JSON](<https://devfeed.tech/topics/json.md>), [Authentication](<https://devfeed.tech/topics/authentication.md>), [cURL](<https://devfeed.tech/topics/curl.md>), [Chrome](<https://devfeed.tech/topics/chrome.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [api-documentation](<https://devfeed.tech/tags/api-documentation.md>), [authentication](<https://devfeed.tech/tags/authentication.md>), [chrome](<https://devfeed.tech/tags/chrome.md>), [chrome-extension](<https://devfeed.tech/tags/chrome-extension.md>), [curl](<https://devfeed.tech/tags/curl.md>), [documentation](<https://devfeed.tech/tags/documentation.md>), [github](<https://devfeed.tech/tags/github.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [json](<https://devfeed.tech/tags/json.md>), [openapi](<https://devfeed.tech/tags/openapi.md>), [pdf](<https://devfeed.tech/tags/pdf.md>), [postman](<https://devfeed.tech/tags/postman.md>), [rest-api](<https://devfeed.tech/tags/rest-api.md>), [swagger](<https://devfeed.tech/tags/swagger.md>), [testing](<https://devfeed.tech/tags/testing.md>)

### AI overview

The article reviews Tom Johnson's free "Documenting APIs: A guide for technical writers and engineers" course. It describes the course's 17 chapters, practical API-learning exercises, coverage of REST APIs, OpenAPI, Swagger UI, testing and publishing API documentation, and a PDF edition exceeding 900 pages.

### Source excerpt

While researching information for my job about the Swagger UI and how it can be used for testing, I came across this free course, called Documenting APIs: A guide for technical writers and engineers at https://idratherbewriting.com/learnapidoc/docapis_overview.html written by Tom Johnson, a technical writer based in Seattle who works for Google. The course looks intense, containing 17 chapters talking about Introduction to REST APIs, using APIs like a developer, Documenting API endpoints, the Open API spec, Testing API docs, Publishing API docs, and more. From the Course Introduction: "You'll first learn about API documentation by using a simple weather API to put a weather forecast on your site. [...] As you use the API, you'll learn about endpoints, parameters, data types, authentication, curl, JSON, the command line, Chrome's Developer Console, JavaScript, and more. The idea is that rather than learning about these concepts independent of any context, you learn them by immersing yourself in a real scenario while using an API. Immersion in real scenarios makes these tools and technologies more meaningful. "We'll then transition into standards, tools, and specifications for REST APIs. You'll learn about the required sections in API documentation, analyze examples of REST API documentation from various companies, learn how to join an open-source project to get experience, and more. "[...] We'll also dive into specifications such as the OpenAPI specification and Swagger UI (which provides tooling for the OpenAPI specification). Additionally, you'll learn how to document native library APIs and generate Javadoc". Tom Johnson offers a PDF version of this free course... over 900 pages, with more always being added. It also offers many workshop-like activities you could put in an actual itinerary. You would need for the course: Chrome, since it provides "a Javascript Console that works well for inspecting JSON", the JSON Formatter Chrome extension, Postman, a GitHub acco

## Testing the Swagger Petstore: Manually Testing An API Using Swagger UI

DevFeed: [Testing the Swagger Petstore: Manually Testing An API Using Swagger UI](<https://devfeed.tech/articles/testing-the-swagger-petstore-manually-testing-an-api-using-swagger-ui-22427.md>)

Original publisher: [Read original article](<https://www.tjmaher.com/2026/09/testing-swagger-petstore-manually.html>)

Author: T.J. Maher (noreply@blogger.com)

Published: 2026-09-07T16:43:41Z

Content type: tutorial

Language: en

Sources: [T.J. Maher](<https://devfeed.tech/sources/t-j-maher.md>)

Topics: [Swagger](<https://devfeed.tech/topics/swagger.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [API](<https://devfeed.tech/topics/api.md>), [OpenAPI Specification](<https://devfeed.tech/topics/openapi.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [auth](<https://devfeed.tech/tags/auth.md>), [authentication](<https://devfeed.tech/tags/authentication.md>), [authorization](<https://devfeed.tech/tags/authorization.md>), [http](<https://devfeed.tech/tags/http.md>), [openapi](<https://devfeed.tech/tags/openapi.md>), [payload](<https://devfeed.tech/tags/payload.md>), [schema](<https://devfeed.tech/tags/schema.md>), [swagger](<https://devfeed.tech/tags/swagger.md>), [testing](<https://devfeed.tech/tags/testing.md>), [ui](<https://devfeed.tech/tags/ui.md>)

### AI overview

A practical guide to manually testing the Swagger Petstore API through Swagger UI. It covers happy-path, negative, boundary and edge-case, authentication and authorization, and contract and schema validation tests using the browser-based "Try it out" feature.

### Source excerpt

With the last post, Testing the Swagger Petstore: Reviewing API Documentation Formatted in OpenAPI 3.0 with Swagger UI we started exploring an API with Swagger UI, such as the Swagger Petstore at https://petstore3.swagger.io/ Here, we will start exploring how to test an API using the Swagger UI. The tests we can run are: Happy Path Testing, checking the Positive Scenarios Negative Testing, reviewing the Invalid Inputs & Error Handling Boundary & Edge Case Testing, checking how the API handles the extreme limits of allowed input ranges Authentication & Authorization Testing Contract and schema validation We can see in the Swagger PetStore there are three tag groups: Pet, Store, and User. Because this is a Swagger UI doc, we can perform manual testing using only the "Try it out" feature in Swagger UI. No external tools needed! Live HTTP requests can be executed directly from your browser. Types of Testing for the API Here are a few types of testing and examples you can do in Swagger UI Happy path Functional Testing Pet POST /pet: add a new pet with a complete, valid payload. Verify 200 and that the response echoes the submitted fields. PUT /pet: update the pet you just created. Verify the change persists on a follow-up GET. GET /pet/{petId}: retrieve the pet by the ID returned from the POST. GET /pet/findByStatus: query with each valid status value (available, pending, sold) individually. GET /pet/findByTags: query with a tag that exists on a pet you created. POST /pet/{petId} (form data): update name/status via form fields instead of JSON body. POST /pet/{petId}/uploadImage: upload a valid image file, verify response message and metadata. DELETE /pet/{petId}: delete a pet you created, then confirm GET on that ID now fails. Store POST /store/order: place an order with valid petId, quantity, shipDate, status. GET /store/order/{orderId}: retrieve the order just placed. GET /store/inventory: verify it returns a status-to-count map without needing auth. DELETE /store/orde

## Testing the Swagger Petstore: Reviewing API Documentation Formatted in OpenAPI 3.0 with Swagger UI

DevFeed: [Testing the Swagger Petstore: Reviewing API Documentation Formatted in OpenAPI 3.0 with Swagger UI](<https://devfeed.tech/articles/testing-the-swagger-petstore-reviewing-api-documentation-formatted-in-openapi-3-0-with-swagger-ui-22426.md>)

Original publisher: [Read original article](<https://www.tjmaher.com/2026/09/reviewing-api-documentation-formatted.html>)

Author: T.J. Maher (noreply@blogger.com)

Published: 2026-09-05T03:09:27Z

Content type: article

Language: en

Sources: [T.J. Maher](<https://devfeed.tech/sources/t-j-maher.md>)

Topics: [OpenAPI Specification](<https://devfeed.tech/topics/openapi.md>), [Swagger](<https://devfeed.tech/topics/swagger.md>), [API](<https://devfeed.tech/topics/api.md>), [Documentation](<https://devfeed.tech/topics/documentation.md>), [Testing](<https://devfeed.tech/topics/testing.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [api-documentation](<https://devfeed.tech/tags/api-documentation.md>), [openapi](<https://devfeed.tech/tags/openapi.md>), [swagger](<https://devfeed.tech/tags/swagger.md>), [testing](<https://devfeed.tech/tags/testing.md>)

### AI overview

This article reviews the Swagger Petstore test site and its API documentation formatted with OpenAPI 3.0 and Swagger UI. It also provides background on Swagger's origins, its acquisition by SmartBear, and the distinction between the OpenAPI Specification and SmartBear's Swagger toolset.

### Source excerpt

For this next project, we will be examining the test site Swagger Petstore - OpenAPI 3.0 at https://petstore3.swagger.io/ https://petstore3.swagger.io/ If we wanted to really dive deep into creating API documentation, we could use: I'dRatherBeWriting's Free Documenting APIs course, showing an Introduction to REST APIs, using APIs like a developer, Documenting API endpoints, the Open API spec, Testing API docs, Publishing API docs, and more... ... But that goes too deep for this blog post. Before we begin, let's get into some background information. What is Swagger? According to OpenAPISpec.com's article, Who Created Swagger?, Swagger was created in 2010 by Tony Tam, the CTO of Wordnik, an online dictionary company that leveraged so many APIs, it was difficult for the six person engineering team to manage and scale them, writing API-clients and documentation by hand. After a 3 AM conversation, they thought... what if the API documentation could describe itself? There already was WADL, the XML-based Web Application Description Language. The name was coined after a joke they made, "Why WADL when you can Swagger?" Swagger went from being an internal fix for a company became to an open-source project other companies relied on. Swagger was acquired by SmartBear Software in 2015 from the renamed Wordnik, Reverb Technologies. According to OpenAPISpec's What Is the History of the SmartBear Swagger Acquisition Tony Tam also joined SmartBear as the VP of Products. Smartbear donated the Swagger Specification to a new group, the OpenAPI Initiative, sponsored by the Linux Foundation. I love SmartBear! They have hosted my old software testing Meetup, the now defunct Ministry of Testing - Boston many, many times. Since then: "OpenAPI" is the OpenAPI Specification as seen on GitHub "Swagger" is SmartBear's toolset such as Swagger UI, Swagger Editor, Swagger Codegen, and SwaggerHub (soon to be Swagger Studio). OpenAPI Initiative: Bridging Systems and Subcultures: A Swagger Origin Sto

## How to Accept Payments in a FastAPI Backend

DevFeed: [How to Accept Payments in a FastAPI Backend](<https://devfeed.tech/articles/how-to-accept-payments-in-a-fastapi-backend-9532.md>)

Original publisher: [Read original article](<https://dodopayments.com/blogs/accept-payments-fastapi/>)

Author: Ayush Agarwal

Published: 2026-03-29T00:00:00Z

Content type: tutorial

Language: en

Sources: [Dodo Payments Blog](<https://devfeed.tech/sources/dodo-payments-blog.md>)

Topics: [FastAPI](<https://devfeed.tech/topics/fastapi.md>), [Back end](<https://devfeed.tech/topics/backend.md>), [Pydantic](<https://devfeed.tech/topics/pydantic.md>), [Python](<https://devfeed.tech/topics/python.md>), [SDKs](<https://devfeed.tech/topics/sdks.md>), [API](<https://devfeed.tech/topics/api.md>), [Software as a service](<https://devfeed.tech/topics/saas.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [async](<https://devfeed.tech/tags/async.md>), [backend](<https://devfeed.tech/tags/backend.md>), [checkout](<https://devfeed.tech/tags/checkout.md>), [compliance](<https://devfeed.tech/tags/compliance.md>), [developer-tools](<https://devfeed.tech/tags/developer-tools.md>), [fastapi](<https://devfeed.tech/tags/fastapi.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [merchant-of-record](<https://devfeed.tech/tags/merchant-of-record.md>), [payment-gateway](<https://devfeed.tech/tags/payment-gateway.md>), [payments](<https://devfeed.tech/tags/payments.md>), [python](<https://devfeed.tech/tags/python.md>), [sdk](<https://devfeed.tech/tags/sdk.md>), [swagger](<https://devfeed.tech/tags/swagger.md>), [tax](<https://devfeed.tech/tags/tax.md>), [validation](<https://devfeed.tech/tags/validation.md>), [verification](<https://devfeed.tech/tags/verification.md>), [webhooks](<https://devfeed.tech/tags/webhooks.md>)

### AI overview

A tutorial on integrating Dodo Payments into a FastAPI backend. It covers asynchronous checkout sessions and webhooks, Pydantic request validation, signature verification, and using verified webhook events as the source of truth for payment state.

### Source excerpt

Learn how to integrate Dodo Payments into your FastAPI backend with async webhook handlers, Pydantic validation, and secure signature verification.

## Meet Your New OpenAPI Editor: A Modern Alternative to Swagger Editor

DevFeed: [Meet Your New OpenAPI Editor: A Modern Alternative to Swagger Editor](<https://devfeed.tech/articles/meet-your-new-openapi-editor-a-modern-alternative-to-swagger-editor-30957.md>)

Original publisher: [Read original article](<https://developerhub.io/blog/meet-your-new-openapi-editor-a-modern-alternative-to-swagger-editor/>)

Author: Zaid Daba'een

Published: 2025-11-16T12:24:10Z

Content type: release

Language: en

Sources: [DeveloperHub.io](<https://devfeed.tech/sources/developerhub-io.md>)

Topics: [OpenAPI Specification](<https://devfeed.tech/topics/openapi.md>), [Swagger](<https://devfeed.tech/topics/swagger.md>), [Tooling](<https://devfeed.tech/topics/tooling.md>), [API](<https://devfeed.tech/topics/api.md>)

Tags: [feature](<https://devfeed.tech/tags/feature.md>), [features](<https://devfeed.tech/tags/features.md>), [openapi](<https://devfeed.tech/tags/openapi.md>), [swagger](<https://devfeed.tech/tags/swagger.md>), [tooling](<https://devfeed.tech/tags/tooling.md>)

### AI overview

The article introduces a free browser-based API editor positioned as an alternative to Swagger Editor. It states that the editor supports OpenAPI 3.2, includes built-in linting and a document outline, and requires no account, installation, or configuration.

### Source excerpt

For years, editor.swagger.io was the place everyone went to sketch out an OpenAPI definition. It was familiar, convenient, and good enough for its time. The problem is simple though: the specification has moved on, tooling expectations have moved on, and that classic editor has not kept pace. If

## Moving from Django DRF to Ninja API / Pydantic

DevFeed: [Moving from Django DRF to Ninja API / Pydantic](<https://devfeed.tech/articles/moving-from-django-drf-to-ninja-api-pydantic-30798.md>)

Original publisher: [Read original article](<https://devblog.kogan.com/blog/moving-from-django-drf-to-ninja-api-pydantic>)

Author: Michael Sidharta

Published: 2025-11-10T05:35:43Z

Content type: comparison

Language: en

Sources: [Kogan.com](<https://devfeed.tech/sources/kogan-com.md>)

Topics: [Django](<https://devfeed.tech/topics/django.md>), [Pydantic](<https://devfeed.tech/topics/pydantic.md>), [API](<https://devfeed.tech/topics/api.md>), [Python](<https://devfeed.tech/topics/python.md>), [Development](<https://devfeed.tech/topics/development.md>), [OpenAPI Specification](<https://devfeed.tech/topics/openapi.md>), [Swagger](<https://devfeed.tech/topics/swagger.md>)

Tags: [api-documentation](<https://devfeed.tech/tags/api-documentation.md>), [data-validation](<https://devfeed.tech/tags/data-validation.md>), [django](<https://devfeed.tech/tags/django.md>), [fastapi](<https://devfeed.tech/tags/fastapi.md>), [python](<https://devfeed.tech/tags/python.md>), [swagger](<https://devfeed.tech/tags/swagger.md>)

### AI overview

This article examines moving from Django REST Framework API patterns to Django Ninja API and Pydantic. It describes motivations including reducing boilerplate, improving performance for some use cases, using modern Python type hints and data validation, and enhancing developer experience. It also outlines Django Ninja's type-based validation, automatic OpenAPI documentation, performance focus, and simplified endpoint definitions.

### Source excerpt

As our project grows, we're always looking for ways to streamline development, improve performance, and enhance the developer experience. Recently, we've been exploring a shift from our traditional Django REST Framework (DRF) API patterns to a combination of Django Ninja API and Pydantic. This blog post will delve into our motivations for this change, the benefits we've observed, and some considerations for others contemplating a similar transition. Why Consider a Change from Django DRF? Django REST Framework has been a robust and widely adopted solution for building APIs with Django. It provides a comprehensive set of tools, including serializers, viewsets, and excellent browser-based API interfaces. However, as our needs evolved, we identified areas where a different approach could offer advantages: Boilerplate Code: While DRF offers powerful abstractions, creating serializers, views, and viewsets can sometimes lead to a significant amount of boilerplate code, especially for simpler APIs. Performance: For certain use cases, the overhead of DRF's serializer validation and rendering can impact performance, particularly in high-throughput scenarios. Modern Python Features: We were keen to leverage modern Python features like type hints and data validation more extensively, which are core to Pydantic. Developer Experience: A more concise and explicit way to define API endpoints and data structures could improve developer productivity and reduce potential errors. Introducing Django Ninja API and PydanticDjango Ninja API Django Ninja is a web framework for building APIs with Django and Python 3.6+ type hints. It's heavily inspired by FastAPI and offers a number of compelling features: Type Hinting for API Endpoints: You define your request and response models using Pydantic, and Ninja automatically validates and serializes the data based on these type hints. Automatic OpenAPI (Swagger) Documentation: Just like FastAPI, Ninja generates interactive API documentation out o

## Should you generate docs from your API schema?

DevFeed: [Should you generate docs from your API schema?](<https://devfeed.tech/articles/should-you-generate-docs-from-your-api-schema-31089.md>)

Original publisher: [Read original article](<https://www.mintlify.com/blog/should-you-generate-docs-from-your-api-schema>)

Author: Emma Adler

Published: 2025-05-16T00:00:00Z

Content type: tutorial

Language: en

Sources: [Mintlify Blog](<https://devfeed.tech/sources/mintlify-blog.md>)

Topics: [Documentation](<https://devfeed.tech/topics/documentation.md>), [OpenAPI Specification](<https://devfeed.tech/topics/openapi.md>), [API](<https://devfeed.tech/topics/api.md>), [Structured-data](<https://devfeed.tech/topics/structured-data.md>), [Swagger](<https://devfeed.tech/topics/swagger.md>), [JSON](<https://devfeed.tech/topics/json.md>), [YAML](<https://devfeed.tech/topics/yaml.md>)

Tags: [ai-trends](<https://devfeed.tech/tags/ai-trends.md>), [api](<https://devfeed.tech/tags/api.md>), [api-documentation](<https://devfeed.tech/tags/api-documentation.md>), [automate](<https://devfeed.tech/tags/automate.md>), [automation](<https://devfeed.tech/tags/automation.md>), [best-practices](<https://devfeed.tech/tags/best-practices.md>), [hybrid](<https://devfeed.tech/tags/hybrid.md>), [json](<https://devfeed.tech/tags/json.md>), [openapi](<https://devfeed.tech/tags/openapi.md>), [schemas](<https://devfeed.tech/tags/schemas.md>), [swagger](<https://devfeed.tech/tags/swagger.md>)

### AI overview

This guide examines the benefits and limitations of generating API documentation from OpenAPI schemas. It explains how schema-based tools such as Swagger UI automatically create documentation from structured endpoint, method, data model, and response definitions, while noting that automation can leave gaps in user guidance and conceptual explanations. It recommends combining automation with customization.

### Source excerpt

When your API constantly changes, how do you ensure your documentation keeps up?

## API Orchestration with Connectors - Thinking in Entities

DevFeed: [API Orchestration with Connectors - Thinking in Entities](<https://devfeed.tech/articles/api-orchestration-with-connectors-thinking-in-entities-23152.md>)

Original publisher: [Read original article](<https://www.apollographql.com/blog/api-orchestration-with-connectors-thinking-in-entities>)

Author: Michael Watson

Published: 2025-02-12T16:51:19Z

Content type: tutorial

Language: en

Sources: [Apollo Blog](<https://devfeed.tech/sources/apollo-blog.md>)

Topics: [Orchestration](<https://devfeed.tech/topics/orchestration.md>), [OpenAPI Specification](<https://devfeed.tech/topics/openapi.md>), [schema design](<https://devfeed.tech/topics/schema-design.md>), [GraphQL](<https://devfeed.tech/topics/graphql.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [apollo-connectors](<https://devfeed.tech/tags/apollo-connectors.md>), [graphql](<https://devfeed.tech/tags/graphql.md>), [openapi](<https://devfeed.tech/tags/openapi.md>), [openapi-specification](<https://devfeed.tech/tags/openapi-specification.md>), [orchestration](<https://devfeed.tech/tags/orchestration.md>), [patterns](<https://devfeed.tech/tags/patterns.md>), [rest](<https://devfeed.tech/tags/rest.md>), [schema-design](<https://devfeed.tech/tags/schema-design.md>), [swagger](<https://devfeed.tech/tags/swagger.md>)

### AI overview

This tutorial introduces API orchestration with Apollo Connectors for REST and explains how to identify entities in existing APIs before exposing them through a connector. It emphasizes using unique identifiers and preserving existing REST API domain definitions when designing the schema.

### Source excerpt

Since we first announced Apollo Connectors for REST at GraphQL Summit 2024, there has been an enormous amount of excitement from the community to dive in. I've been working with dozens of Enterprises on their use cases from breaking apart existing monoliths to integrating multiple production OpenAPI specification endpoints. In my work, there have been some patterns that have emerged and I wanted to start a new blog series that helps share the happy path to building faster.

## Build Well-Documented and Authenticated APIs in Node.js with Fastify

DevFeed: [Build Well-Documented and Authenticated APIs in Node.js with Fastify](<https://devfeed.tech/articles/build-well-documented-and-authenticated-apis-in-node-js-with-fastify-26379.md>)

Original publisher: [Read original article](<https://www.heroku.com/blog/build-openapi-apis-nodejs-fastify/>)

Author: Julián Duque

Published: 2024-04-29T23:25:00Z

Content type: tutorial

Language: en

Sources: [Heroku](<https://devfeed.tech/sources/heroku.md>)

Topics: [Fastify](<https://devfeed.tech/topics/fastify.md>), [API](<https://devfeed.tech/topics/api.md>), [Node.js](<https://devfeed.tech/topics/node-js.md>), [Authentication](<https://devfeed.tech/topics/authentication.md>), [JSON Web Tokens](<https://devfeed.tech/topics/jwt.md>), [OpenAPI Specification](<https://devfeed.tech/topics/openapi.md>), [Heroku](<https://devfeed.tech/topics/heroku.md>), [Postman](<https://devfeed.tech/topics/postman.md>), [Swagger](<https://devfeed.tech/topics/swagger.md>), [Back end](<https://devfeed.tech/topics/backend.md>)

Tags: [apis](<https://devfeed.tech/tags/apis.md>), [authentication](<https://devfeed.tech/tags/authentication.md>), [back-end](<https://devfeed.tech/tags/back-end.md>), [build](<https://devfeed.tech/tags/build.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [express](<https://devfeed.tech/tags/express.md>), [framework](<https://devfeed.tech/tags/framework.md>), [heroku](<https://devfeed.tech/tags/heroku.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [jwt](<https://devfeed.tech/tags/jwt.md>), [node-js](<https://devfeed.tech/tags/node-js.md>), [openapi](<https://devfeed.tech/tags/openapi.md>), [postman](<https://devfeed.tech/tags/postman.md>), [product-features](<https://devfeed.tech/tags/product-features.md>), [swagger](<https://devfeed.tech/tags/swagger.md>)

### AI overview

A hands-on walkthrough for building a documented and authenticated API with Node.js and Fastify. It covers JWT authentication, Fastify Swagger plugins for generating an OpenAPI specification, Postman as an API client, and deployment to Heroku.

### Source excerpt

If you're an API developer working with Node.js, then you're probably familiar with Express. But have you tried out the Fastify framework to build with power, speed, and convenience? In this walkthrough, we build a full-featured, easy-to-consume API with Fastify. And we deploy it to the cloud with ease. We show you how to: Get [...] The post Build Well-Documented and Authenticated APIs in Node.js with Fastify appeared first on Heroku.

## A brief introduction to OpenAPI

DevFeed: [A brief introduction to OpenAPI](<https://devfeed.tech/articles/a-brief-introduction-to-openapi-19081.md>)

Original publisher: [Read original article](<https://httptoolkit.com/blog/introduction-to-openapi/>)

Author: HTTP Toolkit; Phil Sturgeon

Published: 2023-11-28T09:30:00Z

Content type: tutorial

Language: en

Sources: [HTTP Toolkit](<https://devfeed.tech/sources/http-toolkit.md>)

Topics: [OpenAPI Specification](<https://devfeed.tech/topics/openapi.md>), [API](<https://devfeed.tech/topics/api.md>), [HTTP](<https://devfeed.tech/topics/http.md>), [JSON Schema](<https://devfeed.tech/topics/json-schema.md>), [Documentation](<https://devfeed.tech/topics/documentation.md>), [JSON](<https://devfeed.tech/topics/json.md>), [SDKs](<https://devfeed.tech/topics/sdks.md>), [Testing](<https://devfeed.tech/topics/testing.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [api-documentation](<https://devfeed.tech/tags/api-documentation.md>), [apis](<https://devfeed.tech/tags/apis.md>), [graphql](<https://devfeed.tech/tags/graphql.md>), [http](<https://devfeed.tech/tags/http.md>), [json-schema](<https://devfeed.tech/tags/json-schema.md>), [openapi](<https://devfeed.tech/tags/openapi.md>), [sdks](<https://devfeed.tech/tags/sdks.md>), [standards](<https://devfeed.tech/tags/standards.md>), [swagger](<https://devfeed.tech/tags/swagger.md>), [validation](<https://devfeed.tech/tags/validation.md>)

### AI overview

An introduction to OpenAPI as a machine-readable description format for HTTP APIs. The article explains how OpenAPI describes endpoints, requests, responses, authentication, and validation, and how it supports documentation, testing, validation, SDK generation, server stubs, and mock servers.

### Source excerpt

It's hard to work on APIs without hearing about OpenAPI. OpenAPI is an API description format, which is essentially metadata that describes an HTTP API: where it lives, how it works, what data is available, and how it's authenticated. Additional keywords can be used to provide all sorts of validation information, adding a type system to what would otherwise just be arbitrary JSON flying around the internet. OpenAPI has been around for donkeys years, previously known as Swagger but renamed to OpenAPI in 2016. It's powered by JSON Schema, which is also pretty popular in certain circles, but it's only in the last few years that OpenAPI has solidified its place as the description format for HTTP APIs, pushing aside others like RAML and API Blueprint. Elder developers will remember working with WSDLs and XML Schema, and gRPC and GraphQL folks might be thinking "hang on this sounds a bit familiar", and absolutely. Type systems for APIs are pretty common, but here's an excellent one you can use for your REST/RESTish API. Here's an example to give you an idea: openapi: 3.1.3 info: title: Your Awesome API version: '1.0.3' description: More information and introduction. paths: /things: post: summary: Create a thing requestBody: content: application/json: schema: type: object properties: name: type: string examples: - Tim responses: '201': description: "Created" content: application/json: schema: type: object properties: id: type: string format: uuid name: type: string examples: - Tim created_at: type: string format: date-time example: 2020-01-01T00:00:00Z This describes an API in a machine-readable format, including overall metadata, endpoint paths, request formats, and the details of possible responses you might receive. What can OpenAPI do? OpenAPI specifications provide a machine-readable base on top of which lots of neat API tools can be used and even generated. One of the most common uses by many API teams to to generate API reference documentation, which helps end-users

## Autogenerating API documentation from OpenAPI

DevFeed: [Autogenerating API documentation from OpenAPI](<https://devfeed.tech/articles/autogenerating-api-documentation-from-openapi-31096.md>)

Original publisher: [Read original article](<https://www.mintlify.com/blog/steps-to-autogenerate>)

Author: Hahnbee Lee

Published: 2023-09-15T00:00:00Z

Content type: tutorial

Language: en

Sources: [Mintlify Blog](<https://devfeed.tech/sources/mintlify-blog.md>)

Topics: [API](<https://devfeed.tech/topics/api.md>), [OpenAPI Specification](<https://devfeed.tech/topics/openapi.md>), [Tutorial](<https://devfeed.tech/topics/tutorial.md>), [Documentation](<https://devfeed.tech/topics/documentation.md>), [JSON](<https://devfeed.tech/topics/json.md>), [YAML](<https://devfeed.tech/topics/yaml.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [api-documentation](<https://devfeed.tech/tags/api-documentation.md>), [best-practices](<https://devfeed.tech/tags/best-practices.md>), [deployment](<https://devfeed.tech/tags/deployment.md>), [documentation](<https://devfeed.tech/tags/documentation.md>), [github](<https://devfeed.tech/tags/github.md>), [json](<https://devfeed.tech/tags/json.md>), [openapi](<https://devfeed.tech/tags/openapi.md>), [swagger](<https://devfeed.tech/tags/swagger.md>), [tutorial](<https://devfeed.tech/tags/tutorial.md>), [yaml](<https://devfeed.tech/tags/yaml.md>)

### AI overview

A step-by-step tutorial showing how to generate API documentation from OpenAPI specifications using Mintlify. It covers preparing and validating an OpenAPI 3.0+ specification, configuring documentation, setting up deployment, generating endpoint MDX files, and organizing the resulting API documentation.

### Source excerpt

If you're using OpenAPI and looking for a quick and efficient method to create beautiful API documentation, you're in the right place.

## Results of Quick Testing of Documentation Tools' Accessibility

DevFeed: [Results of Quick Testing of Documentation Tools' Accessibility](<https://devfeed.tech/articles/results-of-quick-testing-of-documentation-tools-accessibility-38449.md>)

Original publisher: [Read original article](<https://eevis.codes/blog/2022-08-11/results-of-quick-testing-of-documentation-tools-accessibility/>)

Author: Eevis Panula

Published: 2023-01-03T08:57:41.997000Z

Content type: article

Language: en

Sources: [Eevis Blog](<https://devfeed.tech/sources/eevis-blog.md>)

Topics: [Accessibility](<https://devfeed.tech/topics/accessibility.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [Documentation](<https://devfeed.tech/topics/documentation.md>), [Swagger](<https://devfeed.tech/topics/swagger.md>), [Browser Extension](<https://devfeed.tech/topics/browser-extension.md>), [OpenAPI Specification](<https://devfeed.tech/topics/openapi.md>), [Document Object Model (DOM)](<https://devfeed.tech/topics/dom.md>)

Tags: [accessibility](<https://devfeed.tech/tags/accessibility.md>), [automated](<https://devfeed.tech/tags/automated.md>), [color](<https://devfeed.tech/tags/color.md>), [documentation](<https://devfeed.tech/tags/documentation.md>), [input](<https://devfeed.tech/tags/input.md>), [keyboard](<https://devfeed.tech/tags/keyboard.md>), [openapi-specification](<https://devfeed.tech/tags/openapi-specification.md>), [screen](<https://devfeed.tech/tags/screen.md>), [swagger](<https://devfeed.tech/tags/swagger.md>), [testing](<https://devfeed.tech/tags/testing.md>)

### AI overview

This article reports quick accessibility testing of Swagger, Read the Docs, Docusaurus, and GitBook using the Axe browser extension, DOM inspection, and keyboard testing. The testing was not exhaustive because it did not include screen readers, narrower viewports, or zooming. For Swagger UI, Axe identified 64 issues, including color-contrast problems, form inputs without programmatically associated labels, and missing landmark regions.

### Source excerpt

When writing my blog post about what backend devs can do for accessibility, I did some quick accessibility tests for different documentation tools. Initially, I thought I'd write about the results in that blog post, but there was just too much to report. So, I ended up writing this blog post. I chose four tools that I know many projects are using. These tools are: Swagger Read the Docs Docusaurus GitBook First, I ran an automated test with the aXe browser extension and dug deeper into the DOM based on the test results. After that, I tested the site with a keyboard. In this blog post, I'll share the test results and some thoughts about them. As you can see from the steps described above, the testing was not exhaustive. I just wanted to get an overview of the issues. I did not, for example, test with a screen reader or with narrower viewports (or zooming). This was a conscious decision, partly because I didn't have time and partly because this blog post would've been super long. And I think this already provides some overview of the state of accessibility of these tools. Let's get started. Swagger URL used for testing: https://petstore3.swagger.io/ Swagger is a set of tools used for API documentation. The Swagger API project started in 2011. Initially, it was a specification, but it was later named OpenAPI Specification. So it has a long history, and many projects use it. One of its tools is Swagger UI, a user interface for browsing the API endpoints. That's the one I'm testing for this blog post. Testing Swagger UI with Axe Runnin Axe-browser extension showed 64 issues, two of which are critical, 35 serious, 18 moderate, and 7 minor. Most of the issues (37) were related to color contrast issues. The contrast ratio for the problematic color combinations ranged between 2.03 and 3.75. Another problem was form input without programmatically associated labels. Some of them were flagged, but when I started digging deeper into the site's code, I noticed that not every insta

## Generate API documentation from Swagger on Ktor

DevFeed: [Generate API documentation from Swagger on Ktor](<https://devfeed.tech/articles/generate-api-documentation-from-swagger-on-ktor-25569.md>)

Original publisher: [Read original article](<https://www.marcogomiero.com/posts/2022/ktor-setup-documentation/>)

Author: Marco Gomiero

Published: 2022-03-22T00:00:00Z

Content type: tutorial

Language: en

Sources: [Posts on Marco Gomiero](<https://devfeed.tech/sources/posts-on-marco-gomiero.md>)

Topics: [Ktor](<https://devfeed.tech/topics/ktor.md>), [Swagger](<https://devfeed.tech/topics/swagger.md>), [OpenAPI Specification](<https://devfeed.tech/topics/openapi.md>), [API](<https://devfeed.tech/topics/api.md>), [Gradle](<https://devfeed.tech/topics/gradle.md>), [Documentation](<https://devfeed.tech/topics/documentation.md>), [backend-development](<https://devfeed.tech/topics/backend-development.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [api-documentation](<https://devfeed.tech/tags/api-documentation.md>), [backend-development](<https://devfeed.tech/tags/backend-development.md>), [documentation](<https://devfeed.tech/tags/documentation.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [ktor](<https://devfeed.tech/tags/ktor.md>), [openapi](<https://devfeed.tech/tags/openapi.md>), [swagger](<https://devfeed.tech/tags/swagger.md>)

### AI overview

A tutorial on generating and exposing API documentation for a Ktor backend. It uses OpenAPI (Swagger) definitions, the Gradle Swagger Generator Plugin, ReDoc, and Ktor's static-content serving capabilities.

### Source excerpt

SERIES: Building a backend with Ktor Part 1: Structuring a Ktor project Part 2: How to persist Ktor logs Part 3: How to use an in-memory database for testing on Ktor Part 4: How to handle database migrations with Liquibase on Ktor Part 5: Generate API documentation from Swagger on Ktor Part 6: How to schedule jobs with Quartz on Ktor Part 7: Moving from mobile to backend development with Ktor When a backend project exposes some APIs, there should also be a place where the clients of those APIs can see and understand what can be consumed. This place can be a document, a text file, a website, etc.

## Working with OpenAPI contract in multiple files

DevFeed: [Working with OpenAPI contract in multiple files](<https://devfeed.tech/articles/working-with-openapi-contract-in-multiple-files-27327.md>)

Original publisher: [Read original article](<https://blog.pchudzik.com/202004/open-api-and-external-ref/>)

Published: 2020-04-23T00:00:00Z

Content type: tutorial

Language: en

Sources: [Paweł Chudzik](<https://devfeed.tech/sources/pawe-chudzik.md>)

Topics: [OpenAPI Specification](<https://devfeed.tech/topics/openapi.md>), [Swagger](<https://devfeed.tech/topics/swagger.md>), [API](<https://devfeed.tech/topics/api.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [code](<https://devfeed.tech/tags/code.md>), [download](<https://devfeed.tech/tags/download.md>), [editor](<https://devfeed.tech/tags/editor.md>), [embedded](<https://devfeed.tech/tags/embedded.md>), [github-issues](<https://devfeed.tech/tags/github-issues.md>), [openapi](<https://devfeed.tech/tags/openapi.md>), [openapi-specification](<https://devfeed.tech/tags/openapi-specification.md>), [swagger](<https://devfeed.tech/tags/swagger.md>)

### AI overview

This tutorial explains how to split a large OpenAPI specification into multiple files and work with external references. It discusses Swagger Editor's limitations, Stoplight Studio, swagger-ui-watcher, and a workflow for organizing a pet store API across separate files.

### Source excerpt

Real-life OpenAPI specification files tend to go really big really fast. In this post, I'll try to explore how we can split single specification file into multiple files and don't get crazy while scrolling up and down like a mad man. Read more

## Making OpenAPI / Swagger Bearable With Your Own DSL

DevFeed: [Making OpenAPI / Swagger Bearable With Your Own DSL](<https://devfeed.tech/articles/making-openapi-swagger-bearable-with-your-own-dsl-15757.md>)

Original publisher: [Read original article](<https://developer.squareup.com/blog/making-openapi-swagger-bearable-with-your-own-dsl>)

Author: Sebastien Armand

Published: 2019-08-02T19:00:00Z

Content type: tutorial

Language: en

Sources: [Square Corner Blog RSS Feed](<https://devfeed.tech/sources/square-corner-blog-rss-feed.md>)

Topics: [OpenAPI Specification](<https://devfeed.tech/topics/openapi.md>), [Racket](<https://devfeed.tech/topics/racket.md>), [Programming](<https://devfeed.tech/topics/programming.md>)

Tags: [domain-specific-language](<https://devfeed.tech/tags/domain-specific-language.md>), [dsl](<https://devfeed.tech/tags/dsl.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [json](<https://devfeed.tech/tags/json.md>), [openapi](<https://devfeed.tech/tags/openapi.md>), [swagger](<https://devfeed.tech/tags/swagger.md>), [yaml](<https://devfeed.tech/tags/yaml.md>)

### AI overview

The article explains how to use Racket to create a domain-specific language for defining OpenAPI documents. It addresses the verbosity, limited composability, and multi-file maintenance problems of handwritten OpenAPI, describing a DSL that produces YAML or JSON and reduced specification files from about 1,000 lines to about 100.

### Source excerpt

Taming OpenAPI using Racket to create a DSL

## Validating OAS 3 specification in your CI build

DevFeed: [Validating OAS 3 specification in your CI build](<https://devfeed.tech/articles/validating-oas-3-specification-in-your-ci-build-21503.md>)

Original publisher: [Read original article](<https://mirocupak.com/validating-oas-3-specification-in-your-ci-build/>)

Published: 2019-02-15T17:29:41Z

Content type: tutorial

Language: en

Sources: [Miro Cupak](<https://devfeed.tech/sources/miro-cupak.md>)

Topics: [OpenAPI Specification](<https://devfeed.tech/topics/openapi.md>), [Continuous integration](<https://devfeed.tech/topics/continuous-integration.md>), [YAML](<https://devfeed.tech/topics/yaml.md>), [GitHub](<https://devfeed.tech/topics/github.md>), [Swagger](<https://devfeed.tech/topics/swagger.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [pull-requests](<https://devfeed.tech/topics/pull-requests.md>)

Tags: [ci](<https://devfeed.tech/tags/ci.md>), [continuous-integration](<https://devfeed.tech/tags/continuous-integration.md>), [github](<https://devfeed.tech/tags/github.md>), [openapi](<https://devfeed.tech/tags/openapi.md>), [pull-requests](<https://devfeed.tech/tags/pull-requests.md>), [specifications](<https://devfeed.tech/tags/specifications.md>), [swagger](<https://devfeed.tech/tags/swagger.md>), [swagger-validator-badge](<https://devfeed.tech/tags/swagger-validator-badge.md>), [testing](<https://devfeed.tech/tags/testing.md>), [travis](<https://devfeed.tech/tags/travis.md>), [travis-ci](<https://devfeed.tech/tags/travis-ci.md>), [yaml](<https://devfeed.tech/tags/yaml.md>)

### AI overview

This tutorial explains how to validate an OpenAPI 3 specification on every pull request as part of continuous integration. It uses the Swagger Validator Badge tool in Travis CI, building version 2.0.0 locally because hosted support for OpenAPI 3 was incomplete at the time of writing.

### Source excerpt

As part of my work on standards under GA4GH, I frequently deal with API specifications, most often written in OpenAPI 3 (OAS 3). The setup is always similar - there's a public GitHub repository containing an OAS 3 YAML file and a few common auxiliary files (.gitignore, LICENSE, CONTRIBUTING.md, and README.md). Reference implementations of...

## Obtaining a URL to a file in a GitHub repository in a Travis CI build

DevFeed: [Obtaining a URL to a file in a GitHub repository in a Travis CI build](<https://devfeed.tech/articles/obtaining-a-url-to-a-file-in-a-github-repository-in-a-travis-ci-build-21502.md>)

Original publisher: [Read original article](<https://mirocupak.com/obtaining-a-url-to-a-file-in-a-github-repository-in-a-travis-ci-build/>)

Published: 2019-01-24T22:51:37Z

Content type: tutorial

Language: en

Sources: [Miro Cupak](<https://devfeed.tech/sources/miro-cupak.md>)

Topics: [ci](<https://devfeed.tech/topics/ci.md>), [GitHub](<https://devfeed.tech/topics/github.md>), [pull-requests](<https://devfeed.tech/topics/pull-requests.md>), [OpenAPI Specification](<https://devfeed.tech/topics/openapi.md>), [Swagger](<https://devfeed.tech/topics/swagger.md>)

Tags: [ci](<https://devfeed.tech/tags/ci.md>), [continuous-integration](<https://devfeed.tech/tags/continuous-integration.md>), [devops](<https://devfeed.tech/tags/devops.md>), [github](<https://devfeed.tech/tags/github.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [openapi-specification](<https://devfeed.tech/tags/openapi-specification.md>), [pull-requests](<https://devfeed.tech/tags/pull-requests.md>), [swagger](<https://devfeed.tech/tags/swagger.md>), [travis](<https://devfeed.tech/tags/travis.md>), [travis-ci](<https://devfeed.tech/tags/travis-ci.md>)

### AI overview

A tutorial explaining how to construct a URL to a repository file in a Travis CI build while accounting for push builds, pull requests from forks, branches, and tags.

### Source excerpt

I'm a fan of Travis CI and use it for continuous integration across pretty much all my open-source projects on GitHub. From time to time, I need to obtain a URL to a file in the repository in my build, e.g. to point a particular tool to it, in a way that respects branches as well as pull requests...

## How Square makes its SDKs

DevFeed: [How Square makes its SDKs](<https://devfeed.tech/articles/how-square-makes-its-sdks-15677.md>)

Original publisher: [Read original article](<https://developer.squareup.com/blog/how-square-makes-its-sdks>)

Author: Tristan Sokol

Published: 2017-07-28T23:00:00Z

Content type: tutorial

Language: en

Sources: [Square Corner Blog RSS Feed](<https://devfeed.tech/sources/square-corner-blog-rss-feed.md>)

Topics: [SDKs](<https://devfeed.tech/topics/sdks.md>), [OpenAPI Specification](<https://devfeed.tech/topics/openapi.md>), [Code generation](<https://devfeed.tech/topics/code-generation.md>), [API](<https://devfeed.tech/topics/api.md>), [GitHub](<https://devfeed.tech/topics/github.md>), [JSON](<https://devfeed.tech/topics/json.md>)

Tags: [apis](<https://devfeed.tech/tags/apis.md>), [build](<https://devfeed.tech/tags/build.md>), [generate](<https://devfeed.tech/tags/generate.md>), [generation](<https://devfeed.tech/tags/generation.md>), [github](<https://devfeed.tech/tags/github.md>), [json](<https://devfeed.tech/tags/json.md>), [openapi](<https://devfeed.tech/tags/openapi.md>), [sdks](<https://devfeed.tech/tags/sdks.md>), [swagger](<https://devfeed.tech/tags/swagger.md>)

### AI overview

Square explains how it uses the OpenAPI specification, Swagger Codegen, and GitHub to generate and deliver client SDKs at scale. The approach helps upstream product teams release API features without waiting for manual SDK updates.

### Source excerpt

At Square we leverage the OpenAPI standard, Swagger Codegen & GitHub to build and deliver our client SDKs in a scalable way.

## Secure and explore ASP.NET Core Web APIs

DevFeed: [Secure and explore ASP.NET Core Web APIs](<https://devfeed.tech/articles/secure-and-explore-asp-net-core-web-apis-20783.md>)

Original publisher: [Read original article](<https://conductofcode.io/post/secure-and-explore-aspnet-core-web-apis/>)

Author: {"twitter"=\>"hlaueriksson"}

Published: 2017-03-31T21:00:00Z

Content type: tutorial

Language: en

Sources: [Henrik Lau Eriksson](<https://devfeed.tech/sources/henrik-lau-eriksson.md>)

Topics: [ASP.NET Core](<https://devfeed.tech/topics/asp-net-core.md>), [Web APIs](<https://devfeed.tech/topics/web-apis.md>), [JSON Web Tokens](<https://devfeed.tech/topics/jwt.md>), [Postman](<https://devfeed.tech/topics/postman.md>), [Authentication](<https://devfeed.tech/topics/authentication.md>), [Authorization](<https://devfeed.tech/topics/authorization.md>), [API](<https://devfeed.tech/topics/api.md>), [JSON](<https://devfeed.tech/topics/json.md>)

Tags: [asp-net-core](<https://devfeed.tech/tags/asp-net-core.md>), [authentication](<https://devfeed.tech/tags/authentication.md>), [authorization](<https://devfeed.tech/tags/authorization.md>), [c-sharp](<https://devfeed.tech/tags/c-sharp.md>), [jwt](<https://devfeed.tech/tags/jwt.md>), [postman](<https://devfeed.tech/tags/postman.md>), [rest](<https://devfeed.tech/tags/rest.md>), [swagger](<https://devfeed.tech/tags/swagger.md>), [web-apis](<https://devfeed.tech/tags/web-apis.md>)

### AI overview

A tutorial on creating an ASP.NET Core Web API, securing its controller actions with JSON Web Tokens, and exploring the API through Swagger UI and Postman. It also describes JWT configuration and request-pipeline setup.

### Source excerpt

How to create a ASP.NET Core Web API, secure it with JSON Web Tokens and explore it with Swagger UI and Postman.