Obecnie definiuję interfejs Rest API i zamierzam użyć Swagger, aby go udokumentować. Już zacząłem definiować moje specyfikacje interfejsu API za pomocą Specyfikacji Open Api w YAML w Swagger-Editor.Swagger Najlepsze praktyki
Następnie, rozumiem, że dam ten plik do Swagger-Codegen wygenerować implementację serwera, a także do Swagger-UI (którego statyka pliki będą poprzednio wklej do mojego serwera), aby odsłonić interaktywna dokumentacja.
Według Swagger jest to podejście odgórne z góry do dołu.
Ale później prawdopodobnie będę musiał zmodyfikować ten interfejs API i chcę to zrobić za pomocą tego żmudnego pliku YAML, który został wcześniej zdefiniowany, aby API było łatwe do zmienienia przez kogokolwiek (i agnostyka językowego).
- Czy sposób, aby to zrobić, aby zmodyfikować plik definicji, a następnie ponowne wykorzystanie Swagger-Codegen? Dzięki temu podejściu, tak myślę, że nie mogę nawet lekko zmodyfikować API bezpośrednio w kodzie serwera implementacji bez ryzykowania posiadania przestarzałej dokumentacji.
i gdybym wybrał zrobić oddolne podejście(poprzez Swagger rdzeniem adnotacji), będę powstrzymać wszystkie moje dalsze modyfikacje występują w kodzie serwera wdrażania, a mój plik początkowy definicja nigdy już nie nadają się do użytku.
- Kolejne pytanie brzmi: czy istnieje wspólny sposób radzenia sobie ze Swagger, gdy chcemy zmodyfikować API zarówno poprzez plik specyfikacji, jak i przez kod serwera implementacji (przypuszczam, że plik, który Swagger-core może wygenerować mnie z mojego kodu, nigdy nie będzie wyglądał jak mój początkowy, który zdefiniowałem ręcznie).
Dziękuję za uwagi.
Dzięki za odpowiedź, myślę, że dobrze pasuje do sposobu, w jaki planowałem go użyć, Twój komentarz mnie potwierdza. –
_ "Przejście z góry na dół iteracyjnie pokonuje cel utrzymania kodu." _ Nie zgadzam się z tym. Idealnie wygenerowany kod nie wymaga konserwacji. Dopóki wygenerowany kod i kod implementacyjny mogą być przechowywane osobno, należy je zregenerować. Jeśli dodaję nowe punkty końcowe do mojego api, nie będę musiał zapisywać dla nich kodu płyty kotła, gdybym tylko mógł dodać definicje i zregenerować – Adam