Eesti

Avastage OpenAPI spetsifikatsiooni (OAS) võimsus. See juhend katab kõik alates põhimõistetest ja eelistest kuni praktiliste näidete ja API-keskse disaini tulevikuni.

API dokumentatsiooni evolutsioon: põhjalik juhend OpenAPI spetsifikatsiooni kohta

Tänapäeva ülimalt ühendatud digitaalses maailmas on rakendusliidesed (API-d) nähtamatud niidid, mis põimivad kokku meie tarkvara ja teenused. Need on kaasaegse digitaalmajanduse mootoriks, võimaldades kõike alates mobiilipangandusest kuni sotsiaalmeedia voogudeni. Kuid API-de arvu plahvatusliku kasvuga kerkib esile kriitiline väljakutse: kuidas saavad arendajad, süsteemid ja organisatsioonid suhelda tõhusalt ja ilma mitmetähenduslikkuseta? Kuidas tagada, et ühes maailma osas loodud API-d saaks sujuvalt tarbida teises maailma osas asuv teenus?

Vastus peitub ühises keeles, universaalses lepingus, mis kirjeldab API võimekust viisil, mida mõistavad nii inimesed kui ka masinad. See ongi OpenAPI spetsifikatsiooni (OAS) roll. Rohkem kui lihtsalt dokumentatsioon, on OAS alusstandard RESTful API-de disainimiseks, ehitamiseks, dokumenteerimiseks ja tarbimiseks. See juhend viib teid sügavale OpenAPI spetsifikatsiooni maailma, uurides, mis see on, miks see on oluline ja kuidas saate seda kasutada paremate ja koostööpõhisemate digitaalsete toodete loomiseks.

Mis on OpenAPI spetsifikatsioon? Universaalne keel API-de jaoks

Oma olemuselt on OpenAPI spetsifikatsioon standardne, keelest sõltumatu liidese kirjeldus RESTful API-dele. See võimaldab teil defineerida oma API kogu struktuuri ühes failis, mis on tavaliselt kirjutatud kas YAML-is või JSON-is. Mõelge sellest kui hoone detailsest plaanist; enne ehituse algust määratleb plaan iga ruumi, iga ukseava ja iga pistikupesa. Sarnaselt kirjeldab OpenAPI dokument:

Lühike ajalugu: Swaggerist OpenAPI-ni

Võite olla kuulnud terminit "Swagger" kasutatavat vaheldumisi OpenAPI-ga. On oluline mõista nende suhet. Spetsifikatsioon sai alguse Swaggeri spetsifikatsioonina 2010. aastal, mille lõi Tony Tam ettevõttes Reverb. Kui see saavutas tohutu populaarsuse, annetati see 2015. aastal Linux Foundationile ja nimetati ümber OpenAPI spetsifikatsiooniks, luues sellest tõelise avatud standardi OpenAPI Initiative'i eestvedamisel, mis on tööstusharu juhtide, sealhulgas Google'i, Microsofti ja IBM-i konsortsium.

Tänapäeval viitab Swagger võimsate avatud lähtekoodiga ja professionaalsete tööriistade komplektile, mis töötavad OpenAPI spetsifikatsiooniga, nagu näiteks Swagger UI interaktiivse dokumentatsiooni genereerimiseks ja Swagger Editor spetsifikatsiooni enda kirjutamiseks.

OpenAPI dokumendi põhikomponendid

OpenAPI dokument on struktureeritud kindlate väljade abil. Kuigi see võib esmapilgul tunduda hirmutav, on see loogiliselt organiseeritud. Vaatame lähemalt OpenAPI 3.x dokumendi peamisi ehitusplokke, kasutades YAML-i selle parema inimloetavuse tõttu.

1. Objektid `openapi` ja `info`: põhitõed

Iga OpenAPI dokument algab versiooni ja oluliste metaandmetega.

Näide:


openapi: 3.0.3
info:
  title: Global Book Catalog API
  description: An API for accessing a catalog of books from around the world.
  version: 1.0.0
  contact:
    name: API Support Team
    url: http://www.example.com/support
    email: support@example.com
  license:
    name: Apache 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0.html

2. Massiiv `servers`: kust leida oma API

Massiiv servers määrab teie API baas-URL-id. Saate defineerida mitu serverit erinevate keskkondade jaoks, näiteks arendus-, testimis- ja tootmiskeskkonna jaoks. See võimaldab tööriistadel lihtsalt keskkondade vahel vahetada.

Näide:


servers:
  - url: https://api.example.com/v1
    description: Production Server
  - url: https://staging-api.example.com/v1
    description: Staging Server

3. Objekt `paths`: API süda

Siin defineerite oma API lõpp-punktid. Objekt paths hoiab endas kõiki individuaalseid URL-i teid. Iga tee-element kirjeldab seejärel HTTP operatsioone (get, post, put, delete jne), mida saab sellel teel sooritada.

Iga operatsiooni sees defineerite detaile nagu:

4. Objekt `components`: taaskasutatavad ehitusplokid

Et vältida enesekordamist (järgides DRY-printsiipi), pakub OpenAPI objekti components. See on võimas funktsioon, kus saate defineerida taaskasutatavaid elemente ja viidata neile kogu oma spetsifikatsioonis, kasutades $ref viiteid.

5. Objekt `security`: autentimise rakendamine

Kui olete oma securitySchemes komponendid defineerinud, kasutatakse nende rakendamiseks objekti security. Saate turvalisust rakendada globaalselt kogu API-le või operatsioonipõhiselt, mis võimaldab segu avalikest ja kaitstud lõpp-punktidest.

Miks teie organisatsioon peaks OpenAPI kasutusele võtma: ärilised ja tehnilised eelised

OpenAPI spetsifikatsiooni kasutuselevõtt ei ole ainult tehniline valik; see on strateegiline otsus, mis suurendab tõhusust, koostööd ja kvaliteeti kogu tarkvaraarenduse elutsükli vältel.

Arendajatele: üks tõe allikas

Tootejuhtidele ja arhitektidele: disain ja haldus

Testijatele ja kvaliteedikontrolli meeskondadele: sujuv valideerimine

Lõppkasutajatele ja partneritele: parem arendajakogemus (DX)

Praktiline juhend: oma esimese OpenAPI dokumendi loomine

Rakendame teooriat praktikas, luues lihtsa OpenAPI 3.0 spetsifikatsiooni meie "Global Book Catalog API" jaoks. Kasutame loetavuse huvides YAML-i.

1. samm: defineerige põhiinfo ja serverid

Alustame metaandmete ja tootmiskeskkonna serveri URL-iga.


openapi: 3.0.3
info:
  title: Global Book Catalog API
  description: An API for accessing a catalog of books from around the world.
  version: 1.0.0
servers:
  - url: https://api.globalbooks.com/v1

2. samm: defineerige taaskasutatav andmemudel `components` all

Enne lõpp-punktide defineerimist loome taaskasutatava skeemi Book objekti jaoks. See hoiab meie disaini puhta ja järjepidevana.


components:
  schemas:
    Book:
      type: object
      properties:
        isbn:
          type: string
          description: The International Standard Book Number.
          example: '978-0321765723'
        title:
          type: string
          description: The title of the book.
          example: 'The C++ Programming Language'
        author:
          type: string
          description: The author of the book.
          example: 'Bjarne Stroustrup'
        publicationYear:
          type: integer
          description: The year the book was published.
          example: 2013
      required:
        - isbn
        - title
        - author

3. samm: defineerige lõpp-punktid `paths` all

Nüüd loome kaks lõpp-punkti: ühe raamatute nimekirja saamiseks ja teise konkreetse raamatu saamiseks selle ISBN-i järgi.

Pange tähele viite $ref: '#/components/schemas/Book' kasutamist. Nii viitame oma taaskasutatavale Book skeemile.


paths:
  /books:
    get:
      summary: List all available books
      description: Returns a list of books, optionally filtered.
      operationId: listBooks
      responses:
        '200':
          description: A successful response with an array of books.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Book'

  /books/{isbn}:
    get:
      summary: Get a book by its ISBN
      description: Returns a single book identified by its ISBN.
      operationId: getBookByIsbn
      parameters:
        - name: isbn
          in: path
          required: true
          description: The ISBN of the book to retrieve.
          schema:
            type: string
      responses:
        '200':
          description: The requested book.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Book'
        '404':
          description: The book with the specified ISBN was not found.

4. samm: lisage turvalisus

Kaitseme oma API-d lihtsa API-võtmega, mis tuleb saata päises. Esmalt defineerime skeemi components all, seejärel rakendame selle globaalselt.


# Add this to the 'components' section
components:
  # ... schemas from before
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-KEY

# Add this at the root level of the document
security:
  - ApiKeyAuth: []

5. samm: valideerige ja visualiseerige

Oma täieliku YAML-failiga saate nüüd kasutada erinevaid tööriistu:

OpenAPI ökosüsteem: tööriistad ja tehnoloogiad

OAS-i võimsust võimendab selle laiaulatuslik ja küps tööriistade ökosüsteem. Ükskõik, milline on teie vajadus, tõenäoliselt on selleks olemas tööriist:

OpenAPI tulevik: OAS 3.1 ja edasi

OpenAPI spetsifikatsioon areneb pidevalt. Viimane suur versioon, OAS 3.1, tõi kaasa mitmeid olulisi täiustusi:

Need edusammud kindlustavad OpenAPI positsiooni kaasaegse, API-keskse ja sündmuspõhise arhitektuuri keskse artefaktina.

Kokkuvõte: kaasaegse arenduse nurgakivi

OpenAPI spetsifikatsioon on muutnud seda, kuidas me API-dest mõtleme. See on tõstnud API dokumentatsiooni kardetud, sageli tähelepanuta jäetud järelmõttest strateegiliseks, elavaks dokumendiks, mis juhib kogu arendustsükli. Toimides masinloetava lepinguna, soodustab OAS koostööd, võimaldab võimsat automatiseerimist, jõustab järjepidevust ja viib lõpuks paremate, usaldusväärsemate ja lihtsamini tarbitavate API-de loomiseni.

Olenemata sellest, kas olete arendaja, arhitekt, tootejuht või testija, on OpenAPI spetsifikatsiooni omaksvõtmine kriitiline samm kaasaegse tarkvaraarenduse valdamise suunas. Kui te seda veel ei kasuta, kaaluge alustamist oma järgmise projektiga. Defineerige esmalt leping, jagage seda oma meeskonnaga ja avage uus tõhususe ja selguse tase oma digitaalsetes koostöödes.