Specificația OpenAPI (din engleză - „OpenAPI specification”; cunoscută inițial ca Swagger Specification [1] ) este o specificație oficializată și un ecosistem de multe instrumente care oferă o interfață între sistemele front-end, codul de bibliotecă de nivel scăzut și soluțiile comerciale în forma API . În același timp, specificația este construită în așa fel încât să nu depindă de limbaje de programare și este convenabilă pentru utilizare atât de oameni, cât și de mașini [2] .
În ceea ce privește scopul, OpenAPI este văzut ca o interfață universală pentru utilizatori (clienți) pentru a interacționa cu serviciile (servere). Dacă o specificație este proiectată pentru un anumit serviciu, atunci pe baza acesteia este posibil să se genereze cod sursă pentru bibliotecile de aplicații client, documentație text pentru utilizatori, opțiuni de testare etc. Există un set mare de instrumente pentru aceste acțiuni pentru diferite limbaje de programare și platforme [3] [2] .
Inițial, dezvoltarea unei specificații numită Swagger Specification a fost realizată din 2010 de către SmartBear . În noiembrie 2015, SmartBear a anunțat că lucrează la o nouă organizație, Open API Initiative, sponsorizată de Linux Foundation . La 1 ianuarie 2016, specificația a fost redenumită Specificația OpenAPI și este dezvoltată ca parte a Inițiativei Open API.
OpenAPI este o specificație oficială și un cadru complet pentru descrierea, crearea, utilizarea și redarea serviciilor web REST . Scopul este de a permite sistemelor client și documentației să-și sincronizeze actualizările cu modificările de pe server. Acest lucru se realizează prin faptul că metodele, parametrii, modelele și alte elemente sunt integrate cu software-ul serverului prin OpenAPI și sunt sincronizate cu acesta tot timpul [4] .
Apariția caietului de sarcini și începerea lucrărilor la cadru se datorează inițiativei companiei Wordnik , pentru nevoile interne ale căreia Swagger a fost dezvoltat de SmartBear. Proiectul a început la începutul anului 2010 [4] . În martie 2015, SmartBear a cumpărat specificația OpenAPI de la tehnologiile Reverb și și-a mutat dezvoltarea la open source [5] .
În noiembrie 2015, SmartBear, în calitate de companie de sprijin pentru Swagger, a anunțat că ajută la crearea unei noi inițiative Open API sub sponsorizarea Fundației Linux. Numeroase companii au devenit membre ale acestei organizații, inclusiv Google , IBM , Microsoft și altele. [6] [7] SmartBear a donat specificația Swagger acestui nou grup [8] .
Alte tehnologii care oferă soluții similare, precum OpenAPI, sunt RAML și Blueprint API [9] .
În 2016, Swagger a primit un API Award la categoria API Infrastructure [10] .
Specificația este independentă de limbajul de programare și poate fi utilizată în afara protocolului HTTP . OpenAPI este aplicat simultan clientului, serverului și documentației corespunzătoare a interfeței create conform REST [4] .
Specificația este declarativă și, prin urmare, poate fi utilizată de clienți fără a cunoaște specificul implementării serverului. În același timp, atât dezvoltatorii, cât și utilizatorii obișnuiți pot lucra cu OpenAPI prin instrumente gata făcute și interfețe furnizate. XML și JSON sunt folosite ca format , dar în cazul general, se poate alege un alt limbaj de marcare [4] (de exemplu, YAML[ semnificația faptului? ] ).