2016-09-01 17 views
11

Utworzono specyfikację interfejsu API z niektórych plików JSON i próbuję sprawdzić, czy pliki sprawdzają się pod kątem specyfikacji interfejsu API.Sprawdzanie poprawności JSON względem schematu interfejsu Swagger API

Istnieje kilka dobrych narzędzi do sprawdzania poprawności w stosunku do schematu JSON, ale nie miałem okazji znaleźć narzędzia do sprawdzenia poprawności względem specyfikacji utworzonych w narzędziu Swagger (narzędzie do tworzenia schematu interfejsu API). Jedynym znalezionym rozwiązaniem jest generowanie klienta/serwera w edytorze Swagger-Editor, jest to dość kłopotliwe.

Czy istnieje już narzędzie do sprawdzania poprawności JSON przeciwko schematowi Swagger?

+1

Czy chcesz sprawdzić, czy specyfikacja jest poprawną specyfikacją OpenAPI (fka. Swagger) lub sprawdzić, czy implementacja tej specyfikacji spowoduje utworzenie JSON, który jest ważny w odniesieniu do schematów JSON? –

+1

Pytanie dotyczy wyłącznie sprawdzenia, czy JSON jest ważny w stosunku do specyfikacji OpenAPI. –

+0

Czy obejrzałeś https://medium.com/@betz.mark/validate-json-models-with-swagger-and-bravado-5fad6b21a825? –

Odpowiedz

9

Arnaud w komentarzach jest prawdą, że istnieją dwa odrębne pytania tutaj.

Chcesz, aby potwierdzić, że specyfikacja jest ważna OpenAPI (FKA. Swagger) wg planu

Można

  • Skopiuj specyfikację do online Swagger editor i będzie rzucać błędów. Szybkie przechodzenie przez source nie mówi mi, czego używa do tworzenia tych błędów, ale nie wydaje się, aby kontaktował się z serwerem, aby to zrobić ...
  • Skorzystaj z oficjalnej wersji swagger-parser dla języka Java.
  • Użyj nieoficjalnego swagger-parser dla JavaScript (przeglądarki lub węzła).

lub potwierdzenie, że realizacja tej specyfikacji będzie produkować JSON, który jest ważny w odniesieniu swoimi schematami JSON?

Innymi słowy, oto trochę JSON z żądania lub treści odpowiedzi, czy to prawda?

Swagger opiera się na innym standardzie o nazwie Schemat JSON dla jego schema objects, który jest tym, co faktycznie opisuje JSON (zamiast punktów końcowych lub metadanych). Swagger używa podzestawu schematu JSON (brakuje między innymi: oneOf, patternProperties). W tym celu można użyć walidatora schematu JSON. Istnieje 37 listed here; Dam ci głos do this online validator, który obsługuje również schematy YAML.

Ale kiedy powiedziałem, że Swagger opiera się na podzbiorze JSON API, skłamałem. Istnieje kilka stałych pól, które mają specjalne znaczenie w Swaggerze, które nie są częścią schematu JSON. Jednym z nich jest discriminator, który jest używany do polimorfizmu. Nie jestem świadomy walidatora Swagger, który może przetworzyć discriminator. Istnieje atrybut fair number of tools dla osoby przechwalającej się i niektórzy twierdzą, że dokonują sprawdzania poprawności, ale wiele z nich to abandonware, przeznaczone dla starszych wersji, nieobsługujące funkcji, powiązane z innymi technologiami i tak dalej. Jeśli istnieje dojrzała i dobrze utrzymana biblioteka, której mi brakuje, chciałbym to wiedzieć.

+0

Mam taką samą sytuację i to było pomocne. Przy odrobinie pracy udało mi się napisać własne skrypty, które mogą sprawdzić poprawność ładunku mojego serwera za pomocą Schematu JSON zdefiniowanego przez Swagger. Napisałem do tego trochę Middlware Express. Zamiast próbować użyć Swagger do zrobienia tego, co chcę, mogę użyć obiektu schematu, na którym on polega. Dzięki! – Tina

+0

Po drugie, jak zaimplementować go bez użycia zewnętrznego weryfikatora schematu? Chcę tylko sprawdzić poprawność instancji schematu na schemacie (przeskoku). Jak to zrobić? Dzięki. – Nikhita

+0

wewnętrznie wygląda na to, że zbieracz używa walidatora json z-schema, więc teoretycznie przyjrzałbyś się temu, jakie funkcje są dostępne? https://github.com/zaggino/z-schema – chrismarx

Powiązane problemy