dox_openapi 3.1.0
dox_openapi: ^3.1.0 copied to clipboard
Generate an OpenAPI 3.1 document (JSON and YAML) for a Dox app, and serve it with a docs page.
3.1.0 #
- Fix: an optional route param
{id?}showed as a required param, so the route without the id was missing from the document. Now/blog/{id?}gives two paths:/blog/{id}and/blog. OpenAPI path params must always be required, so this is the only correct way to show it. An optional param in the middle works too:/a/{x?}/bgives/a/{x}/band/a/b. Optional params next to each other are dropped from the right, the same way the Dox router matches them. A route that is documented on the shorter path itself still wins. - The shorter path of an optional route now has its own summary and operation id. Before,
/greetshowed the summaryGET /greet/{name}and the long idgetGreetByNameWithoutName. Now it showsGET /greetandgetGreet. This only happens when the summary and id were made from the path. A custom summary stays, and a custom id still gets aWithout<Name>ending. Operation ids of routes without optional params do not change. - New:
paramResponsesonRouteDoc. These are answers that only happen when the path has a param, like404when no record has the id. The shorter path of an optional route leaves them out when it has no params left. - New:
DoxRouteAdapterputs thebodyof a GET or DELETE route in the query string, like dox_core does. Before, it became a request body, so the query params were missing from the docs. A schema without properties stays a body. - New:
namedResponsesonRouteDocandApiDoc.route. It takes responses with a text key, likedefaultor2XX. Theresponsesmap still usesintkeys and works as before.
3.0.0 #
- The first stable release.
- The package now lives in its own repo: dartondox/dox-openapi. Nothing changes for users: same package name, same API.
3.0.0-rc.1 #
- Version bump only, to match the other packages.
3.0.0-alpha.17 #
- Version bump only, to match the other packages.
3.0.0-alpha.16 #
- Version bump only, to match the other packages.
3.0.0-alpha.15 #
- Version bump only, to match the other packages.
3.0.0-alpha.14 #
- New:
OpenApiSecurityandOpenApiRegistry.security: login schemes by middleware class name, from@Security.
3.0.0-alpha.13 #
- Version bump only, to match the other packages.
3.0.0-alpha.12 #
- Fix: two controllers with the same method name (like
login) could swap their docs.OpenApiRegistry.findnow takescontroller:. When the route knows its controller class, only methods of that class match.
3.0.0-alpha.11 #
- Version bump only, to match the other packages.
3.0.0-alpha.10 #
- Version bump only, to match the other packages.
3.0.0-alpha.9 #
- Version bump only, to match the other packages.
3.0.0-alpha.8 #
- Version bump only, to match the other packages.
3.0.0-alpha.7 #
- The
/docspage loads its CDN files with anintegrityhash, so the browser refuses a changed file.
3.0.0-alpha.6 #
- Version bump only, to match the other packages.
3.0.0-alpha.5 #
- Version bump only, to match the other packages.
3.0.0-alpha.4 #
- Version bump only, to match the other packages.
3.0.0-alpha.3 #
- Version bump only, to match the other packages.
3.0.0-alpha.2 #
- A request body with a file field (
format: binary, also in a list) usesmultipart/form-datainstead ofapplication/json, so the/docspage can send files.RouteDoc(bodyMediaType:)sets it by hand. - Needs Dart 3.13 or newer.
- All dependencies updated to their latest versions.
DoxRouteAdapterreadspreMiddlewareandbodyfrom a route when it has them.- A Dox catch-all param
{path*}and an optional param{id?}become{path}and{id}in the document. OpenApiOperation.formRequestis removed (form requests are gone).- New
OpenApiRegistry,OpenApiOperationandOpenApiRouteBinding: the docs thatdox_builderfinds in the code.OpenApiRegistry.find()matches them to a live route. RouteDocandApiDoc.route()takedeprecated.OpenApiServerbuilds and encodes the document once, on the first call, and keeps it. Make a newOpenApiServerafter you change theOpenApi.OpenApi.yamlEmitteris now a public field./docsuses Scalar (@scalar/api-reference1.75.1) by default.OpenApiServer(ui: DocsUi.swagger)gives Swagger UI.ScalarOptionssets the theme, dark mode, download button and proxy (off by default). The title and the config are escaped.- Swagger UI updated to 5.34.0.
3.0.0-alpha.1 #
- First release.
- Build an OpenAPI 3.1 document with
OpenApiandApiDoc. - Add undocumented Dox routes with
DoxRouteAdapter. - Output as JSON and YAML, write files, serve
/openapi.json,/openapi.yamland/docs.