OpenAPIDocumentConfig.fromJson constructor

OpenAPIDocumentConfig.fromJson(
  1. Map<String, Object?> json
)

Wraps decoded JSON.

Implementation

factory OpenAPIDocumentConfig.fromJson(Map<String, Object?> json) =>
    OpenAPIDocumentConfig._({
      'info': OpenAPIInfo.fromJson(
        _requireMap(json, 'info', scope: 'openapi.document'),
      ),
      if (json.containsKey('components'))
        'components': OpenAPIComponents.fromJson(
          _requireMap(json, 'components', scope: 'openapi.document'),
        ),
      if (json.containsKey('servers'))
        'servers': _requireList(json, 'servers', scope: 'openapi.document')
            .map(
              (entry) => OpenAPIServer.fromJson(
                _requireObjectMap(entry, scope: 'openapi.document.servers'),
              ),
            )
            .toList(),
      if (json.containsKey('webhooks'))
        'webhooks': {
          for (final entry in _requireMap(
            json,
            'webhooks',
            scope: 'openapi.document',
          ).entries)
            entry.key: OpenAPIPathItem.fromJson(
              _requireObjectMap(
                entry.value,
                scope: 'openapi.document.webhooks.${entry.key}',
              ),
            ),
        },
      if (json.containsKey('tags'))
        'tags': _requireList(json, 'tags', scope: 'openapi.document')
            .map(
              (entry) => OpenAPITag.fromJson(
                _requireObjectMap(entry, scope: 'openapi.document.tags'),
              ),
            )
            .toList(),
      if (json.containsKey('security'))
        'security': _requireList(json, 'security', scope: 'openapi.document')
            .map(
              (entry) =>
                  OpenAPISecurityRequirement(_requireStringListMap(entry)),
            )
            .toList(),
      if (json.containsKey('externalDocs'))
        'externalDocs': OpenAPIExternalDocs.fromJson(
          _requireMap(json, 'externalDocs', scope: 'openapi.document'),
        ),
      'jsonSchemaDialect': ?optionalString(
        json,
        'jsonSchemaDialect',
        scope: 'openapi.document',
      ),
      ...extractExtensions(json),
    });