# Swagger

Swagger is an open-source set of tools and an API description format for designing, building, documenting, testing, and consuming REST APIs.

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

## From Contributor to Outreachy Intern: My Fedora Journey Begins

DevFeed: [From Contributor to Outreachy Intern: My Fedora Journey Begins](<https://devfeed.tech/articles/from-contributor-to-outreachy-intern-my-fedora-journey-begins-31155.md>)

Original publisher: [Read original article](<https://communityblog.fedoraproject.org/from-contributor-to-outreachy-intern-my-fedora-journey-begins/>)

Author: Aman .

Published: 2026-06-16T12:00:00Z

Content type: article

Language: en

Sources: [Fedora Community Blog](<https://devfeed.tech/sources/fedora-community-blog.md>)

Topics: [Fedora](<https://devfeed.tech/topics/fedora.md>), [FastAPI](<https://devfeed.tech/topics/fastapi.md>), [API](<https://devfeed.tech/topics/api.md>), [release engineering](<https://devfeed.tech/topics/release-engineering.md>), [Authentication](<https://devfeed.tech/topics/authentication.md>), [CI/CD](<https://devfeed.tech/topics/cicd.md>), [forgejo](<https://devfeed.tech/topics/forgejo.md>), [Pydantic](<https://devfeed.tech/topics/pydantic.md>), [Swagger](<https://devfeed.tech/topics/swagger.md>), [Deployment](<https://devfeed.tech/topics/deployment.md>), [openid](<https://devfeed.tech/topics/openid.md>)

Tags: [apis](<https://devfeed.tech/tags/apis.md>), [backend](<https://devfeed.tech/tags/backend.md>), [blog](<https://devfeed.tech/tags/blog.md>), [fedora-project-community](<https://devfeed.tech/tags/fedora-project-community.md>), [intern](<https://devfeed.tech/tags/intern.md>), [journey](<https://devfeed.tech/tags/journey.md>), [mentored-projects](<https://devfeed.tech/tags/mentored-projects.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [outreachy](<https://devfeed.tech/tags/outreachy.md>)

### AI overview

Aman describes his first two weeks as an Outreachy intern with the Fedora community. He introduces the Fedora Release Schedule Planner API project and outlines planned work on testing, CI reliability, OpenID Connect authentication, Fedora infrastructure integration, and deployment preparation.

### Source excerpt

Introduction Hi, I'm Aman, a software developer and open-source enthusiast who enjoys backend development, APIs, and building tools that are useful to others. I recently started my Outreachy internship with the Fedora community, and this is my first blog as an intern. In this post, I want to share what my first two weeks have [...] The post From Contributor to Outreachy Intern: My Fedora Journey Begins appeared first on Fedora Community Blog.

## 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?

## 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.

## 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

## 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...