build method
The document for routes.
Implementation
OpenApi build(Iterable<RouteData> routes) {
OpenApiRouteReader reader = OpenApiRouteReader(config);
ApiDoc docs = ApiDoc();
for (RouteData route in routes) {
if (_paths.contains(route.path) ||
!PathConverter.isSupportedMethod(route.method)) {
continue;
}
RouteDoc? doc = reader.read(route);
if (doc != null) docs.add(doc);
}
for (MapEntry<String, Map<String, dynamic>> schema
in config.registry.schemas.entries) {
docs.schema(schema.key, schema.value);
}
if (reader.usesValidationError) {
docs.schema(OpenApiRouteReader.validationError, _validationErrorSchema);
}
Map<String, SecurityScheme> schemes = config.securitySchemes;
if (reader.usesBearerAuth &&
!schemes.containsKey(OpenApiRouteReader.bearerAuth)) {
schemes = <String, SecurityScheme>{
...schemes,
OpenApiRouteReader.bearerAuth: SecurityScheme.bearer(),
};
}
return OpenApi(
info: config.info,
servers: config.servers,
securitySchemes: schemes,
docs: docs,
);
}