read method

RouteDoc? read(
  1. RouteData route
)

docs for route, or null when it has @ApiIgnore()

Implementation

RouteDoc? read(RouteData route) {
  Object? handler = _handler(route);
  OpenApiOperation? op = handler == null ? null : _find(route, handler);
  if (op != null && op.ignore) return null;
  String method = PathConverter.method(route.method);
  String path = PathConverter.path(route.path);
  List<String> middleware = _adapter.middlewareNames(
    route.controllers,
    preMiddleware: route.preMiddleware,
  );
  List<Map<String, List<String>>>? security = _security(middleware);
  Object? request = _request(route, op);
  bool inQuery = _inQuery(method, op, request);
  Object? schema = _schema(request);
  if (inQuery) {
    request = schema is Map && schema['properties'] is Map ? schema : null;
  }
  return RouteDoc(
    method: method,
    path: path,
    summary: op?.summary ?? '${method.toUpperCase()} $path',
    description: op?.description,
    operationId: _operationId(op, method, path),
    tags: op?.tags ?? const <String>[],
    deprecated: op?.deprecated ?? false,
    params: _params(route, op),
    query: inQuery ? request : null,
    body: inQuery ? null : request,
    bodyMediaType: !inQuery && schema is Map<String, dynamic>
        ? RouteDoc.mediaTypeFor(schema)
        : null,
    responses: _responses(op, request != null, security != null, path),
    security: security,
    extensions: middleware.isEmpty
        ? const <String, dynamic>{}
        : <String, dynamic>{'x-dox-middleware': middleware},
  );
}