Il parser OpenAPI
Una classe Delphi nativa che legge specifiche OpenAPI 3.0, 3.1 e 3.2, oltre ai documenti Swagger 2.0 convertiti già in ingresso, offrendoti accesso programmatico a ogni endpoint, schema e definizione di sicurezza.
Una classe Delphi nativa che legge specifiche OpenAPI 3.0, 3.1 e 3.2, oltre ai documenti Swagger 2.0 convertiti già in ingresso, offrendoti accesso programmatico a ogni endpoint, schema e definizione di sicurezza.
Non c'è nulla da inserire su una form. sgcOpenAPI non registra componenti e non include un package di design-time, quindi crei TsgcOpenAPI da codice, da sgcOpenAPI_Classes.pas, e vi leggi qualsiasi specifica.
ReadFromFile riceve un percorso e Read riceve il documento come stringa, mentre lo strumento a riga di comando scarica prima una URL. JSON e YAML vengono letti in locale e anche un documento Swagger 2.0 viene convertito in OpenAPI 3.0 in locale.
Paths, Webhooks, Components, Security, Servers, Tags e Info sono proprietà dell'oggetto, così percorsi, operazioni, parametri, corpi di richiesta e risposta, schemi e schemi di sicurezza restano raggiungibili con un modello fortemente tipizzato.
TsgcOpenAPI_Parser_Client_Pascal discende dalla stessa classe, quindi il generatore è il lettore con un emettitore sopra. Derivane per produrre unit Pascal, oppure percorri tu stesso il modello per strumenti personalizzati e automazione.
Un $ref resta sull'oggetto come _Ref invece di essere incorporato, quindi il modello non arriva dereferenziato. I riferimenti a file esterni e a URL vengono portati dentro prima da TsgcOpenAPI_Bundle, che li incorpora, ricorda ciò che ha già visitato e si ferma a una profondità massima.
AllOf, OneOf e AnyOf vengono letti nell'oggetto schema, insieme a Discriminator e al suo mapping, e il generatore di codice li appiattisce in classi Pascal.
Warnings raccoglie tutto ciò che il lettore non ha potuto onorare, da un oggetto info mancante a una parola chiave che il generatore ignora, e viene svuotato a ogni lettura. Riga e colonna vengono riportate per un documento YAML che non si riesce ad analizzare.