O analisador OpenAPI
Uma classe Delphi nativa que lê especificações OpenAPI 3.0, 3.1 e 3.2, além de documentos Swagger 2.0 convertidos já na entrada, oferecendo acesso programático a cada endpoint, esquema e definição de segurança.
Uma classe Delphi nativa que lê especificações OpenAPI 3.0, 3.1 e 3.2, além de documentos Swagger 2.0 convertidos já na entrada, oferecendo acesso programático a cada endpoint, esquema e definição de segurança.
Não há nada para soltar num formulário. O sgcOpenAPI não registra componentes nem inclui pacote de design-time, então você cria TsgcOpenAPI por código, a partir de sgcOpenAPI_Classes.pas, e lê nele qualquer especificação.
ReadFromFile recebe um caminho e Read recebe o documento como string, enquanto a ferramenta de linha de comando baixa antes uma URL. JSON e YAML são lidos localmente, e um documento Swagger 2.0 também é convertido para OpenAPI 3.0 localmente.
Paths, Webhooks, Components, Security, Servers, Tags e Info são propriedades do objeto, portanto caminhos, operações, parâmetros, corpos de requisição e resposta, esquemas e esquemas de segurança ficam acessíveis por um modelo fortemente tipado.
TsgcOpenAPI_Parser_Client_Pascal descende da mesma classe, ou seja, o gerador é o leitor com um emissor por cima. Herde dele para produzir units Pascal, ou percorra o modelo você mesmo para ferramentas e automações personalizadas.
Um $ref fica guardado no objeto como _Ref em vez de ser embutido, então o modelo não chega desreferenciado. Referências a arquivos externos e a URLs são trazidas antes pelo TsgcOpenAPI_Bundle, que as embute, lembra o que já visitou e para numa profundidade máxima.
AllOf, OneOf e AnyOf são lidos no objeto de esquema, junto com Discriminator e seu mapeamento, e o gerador de código os achata em classes Pascal.
Warnings reúne tudo o que o leitor não conseguiu honrar, de um objeto info ausente a uma palavra-chave que o gerador ignora, e é limpo a cada leitura. Linha e coluna são informadas para um documento YAML que não parseia.