documentAPI method
Creates an OpenAPI document for the components and paths in this channel.
This method invokes entryPoint and prepare before starting the documentation process.
The documentation process first invokes documentComponents on this channel. Every controller in the channel will have its
documentComponents methods invoked. Any declared property
of this channel that implements APIComponentDocumenter
will have its documentComponents
method invoked. If there services that are part of the application, but not stored as properties of this channel, you may override
documentComponents in your subclass to add them. You must call the superclass' implementation of documentComponents.
After components have been documented, APIOperationDocumenter.documentPaths
is invoked on entryPoint. The controllers
of the channel will add paths and operations to the document during this process.
This method should not be overridden.
projectSpec
should contain the keys name
, version
and description
.
Implementation
Future<APIDocument> documentAPI(Map<String, dynamic> projectSpec) async {
final doc = APIDocument()..components = APIComponents();
final root = entryPoint;
root.didAddToChannel();
final context = APIDocumentContext(doc);
documentComponents(context);
doc.paths = root.documentPaths(context);
doc.info = APIInfo(
projectSpec["name"] as String?,
projectSpec["version"] as String?,
description: projectSpec["description"] as String?,
);
await context.finalize();
return doc;
}