OpenAPI Doğrulayıcı

Bir OpenAPI veya Swagger belgesini, JSON ya da YAML olarak yapıştırın; bu doğrulayıcı temel yapısını kontrol eder. Belgenin ayrıştırıldığını, openapi veya swagger sürüm alanı taşıdığını, başlık ve sürüm içeren bir info nesnesi ve bir paths nesnesi bulundurduğunu doğrular, ardından eğik çizgiyle başlamayan yolları ve bilinmeyen HTTP yöntemlerini işaretler. Bu, tam bir JSON Schema doğrulayıcısı değil, hızlı bir yapısal kontroldür.

Doğrulama nasıl çalışır

  1. 1

    Belgeyi yapıştırın

    OpenAPI 2 (Swagger) veya OpenAPI 3 için JSON ya da YAML.

  2. 2

    Ayrıştırın

    Doğrulayıcı belgeyi JSON olarak ayrıştırır ve bu başarısız olursa YAML ayrıştırmasına geri döner.

  3. 3

    Zorunlu alanları kontrol edin

    `openapi` veya `swagger` sürüm alanını, `title` ve `version` içeren bir `info` nesnesini ve bir `paths` nesnesini doğrular.

  4. 4

    Yolları tarayın

    Her yol, baştaki eğik çizgi için kontrol edilir ve her işlem anahtarı bilinen HTTP yöntemleriyle karşılaştırılır.

  5. 5

    Raporu okuyun

    Hatalar geçerliliği engeller; uyarılar, baştaki eğik çizgisi olmayan yollara ve bilinmeyen yöntemlere işaret eder.

Bu doğrulayıcının kontrol ettikleri

Kontrol Başarısız olursa sonuç
Belge JSON veya YAML olarak ayrıştırılır Hata
openapi veya swagger alanı var Hata
info nesnesi var Hata
info.title var Hata
info.version var Hata
paths nesnesi var Hata
Her yol / ile başlar Uyarı
İşlem anahtarları bilinen HTTP yöntemleri Uyarı

Her hatayı geçen bir belge, yapısal olarak geçerli diye raporlanır. Uyarılar geçerliliği engellemez; düzeltmeye değer noktalara dikkat çeker.

Kontrol etmedikleri

Bu, tam bir belirtim doğrulayıcısı değil, yapısal bir kontroldür. Şunları yapmaz:

  • her düğümü, sürümünüz için resmi JSON Schema’ya karşı doğrulamaz;
  • $ref referanslarını çözmez ya da işaret ettikleri bileşenlerin var olduğunu doğrulamaz;
  • yol parametrelerinin tutarlı biçimde bildirildiğini ve kullanıldığını denetlemez;
  • operationId değerlerinin var olduğunu ya da benzersiz olduğunu doğrulamaz;
  • hataların satır numaralarını bildirmez.

Bu derinlik için redocly lint, swagger-cli validate ya da spectral lint gibi özel bir CLI doğrulayıcısı çalıştırın. Bu aracı, bir belirtimi işlemeden (commit) veya paylaşmadan önce hızlı bir sağlamlık kontrolü için kullanın.

Gerçek dünyadaki OpenAPI sürümleri

Sürüm Notlar
Swagger 2.0 Hâlâ yaygın olarak konuşlandırılıyor; swagger: "2.0" kullanır
OpenAPI 3.0.x En yaygın 3.x hattı
OpenAPI 3.1.0 JSON Schema 2020-12 ile hizalı

Bu doğrulayıcı, openapi alanını (3.x) ya da swagger alanını (2.0) kabul eder, dolayısıyla bunların tümü sürüm kontrolünü geçer.

Geçen minimal bir belge

openapi: 3.0.3
info:
  title: Example API
  version: 1.0.0
paths:
  /users:
    get:
      summary: List users

Zorunlu alanların tümü var, tek yol eğik çizgiyle başlıyor ve get bilinen bir yöntem, dolayısıyla bu belge yapısal olarak geçerli diye raporlanır.

Sık Sorulan Sorular

Swagger, belirtimin özgün adıydı; 2015’te Linux Foundation’a bağışlandı ve 3.0 sürümünden itibaren “OpenAPI” olarak yeniden adlandırıldı. “Swagger” artık araçlara (Swagger UI, Swagger Editor) atıfta bulunur. Belirtimin kendisi OpenAPI’dir. Bu doğrulayıcı hem swagger (2.0) hem de openapi (3.x) sürüm alanını kabul eder.

Hayır. Temel yapıyı kontrol eder: belgenin ayrıştırıldığını, bir sürüm alanı, başlık ve sürüm içeren bir info nesnesi ve bir paths nesnesi taşıdığını doğrular ve baştaki eğik çizgisi olmayan yollar ile bilinmeyen yöntemler için uyarır. Her düğümü resmi JSON Schema’ya karşı doğrulamaz. Bunun için redocly lint veya spectral lint kullanın.

Hayır. $ref referanslarını izlemez ya da işaret ettikleri bileşenlerin var olduğunu kontrol etmez. Dosyalar arası referanslar için, belgeyi önce redocly bundle veya swagger-cli bundle gibi bir araçla paketleyin, ardından tam bir doğrulayıcı çalıştırın.

Hayır. Yalnızca yapıştırdığınız belgeyi inceler, çalışan kodunuzu değil. API’nizin belirtimin anlattığını gerçekten döndürüp döndürmediğini göremez. Dredd veya Schemathesis gibi sözleşme testi araçları bunu yapar.

İlgili Araçlar

Araç diğer dillerde mevcuttur