Pracuję na PHP i użyłem Swagger 2.0 do udokumentowania API. Dokument Swagger jest tworzony w locie (przynajmniej tego używam w PHP). Dokument jest generowany w formacie JSON.
Przykładowy dokument
{
"swagger": "2.0",
"info": {
"title": "Company Admin Panel",
"description": "Converting the Magento code into core PHP and RESTful APIs for increasing the performance of the website.",
"contact": {
"email": "[email protected]"
},
"version": "1.0.0"
},
"host": "localhost/cv_admin/api",
"schemes": [
"http"
],
"paths": {
"/getCustomerByEmail.php": {
"post": {
"summary": "List the details of customer by the email.",
"consumes": [
"string",
"application/json",
"application/x-www-form-urlencoded"
],
"produces": [
"application/json"
],
"parameters": [
{
"name": "email",
"in": "body",
"description": "Customer email to ge the data",
"required": true,
"schema": {
"properties": {
"id": {
"properties": {
"abc": {
"properties": {
"inner_abc": {
"type": "number",
"default": 1,
"example": 123
}
},
"type": "object"
},
"xyz": {
"type": "string",
"default": "xyz default value",
"example": "xyz example value"
}
},
"type": "object"
}
}
}
}
],
"responses": {
"200": {
"description": "Details of the customer"
},
"400": {
"description": "Email required"
},
"404": {
"description": "Customer does not exist"
},
"default": {
"description": "an \"unexpected\" error"
}
}
}
},
"/getCustomerById.php": {
"get": {
"summary": "List the details of customer by the ID",
"parameters": [
{
"name": "id",
"in": "query",
"description": "Customer ID to get the data",
"required": true,
"type": "integer"
}
],
"responses": {
"200": {
"description": "Details of the customer"
},
"400": {
"description": "ID required"
},
"404": {
"description": "Customer does not exist"
},
"default": {
"description": "an \"unexpected\" error"
}
}
}
},
"/getShipmentById.php": {
"get": {
"summary": "List the details of shipment by the ID",
"parameters": [
{
"name": "id",
"in": "query",
"description": "Shipment ID to get the data",
"required": true,
"type": "integer"
}
],
"responses": {
"200": {
"description": "Details of the shipment"
},
"404": {
"description": "Shipment does not exist"
},
"400": {
"description": "ID required"
},
"default": {
"description": "an \"unexpected\" error"
}
}
}
}
},
"definitions": {
}
}
Można to zaimportować do programu Postman w następujący sposób.
Kliknij przycisk „ Importuj ” w lewym górnym rogu interfejsu Postman.
Zobaczysz wiele opcji importowania dokumentu API. Kliknij „ Wklej surowy tekst ”.
Wklej format JSON w polu tekstowym i kliknij importuj.
Wszystkie swoje interfejsy API będą widoczne jako „ Kolekcja Listonosza ” i będziesz mógł z nich korzystać z poziomu Listonosza.
Możesz także użyć opcji „Importuj z łącza”. Tutaj wklej adres URL, który generuje format JSON interfejsów API z narzędzia Swagger lub dowolnego innego narzędzia dokumentu API.
To jest plik generowania mojego dokumentu (JSON). Jest w PHP. Nie mam pojęcia o JAVA razem z Swaggerem.
dzięki, ale teraz problem polega na tym, jak mogę wyeksportować plik z swagger-ui? A link jest bezużyteczny.
Demon Coldmist
@DemonColdmist Dodałem kod do generowania API. Zasadniczo skanuje cały katalog, sprawdza adnotacje i generuje dane wyjściowe JSON / YAML. Przepraszam, ale nie używałem Swaggera z JAVĄ.
JDpawar
dzięki, jeśli można to wyeksportować w PHP, tak samo jak Java. Przetłumaczę to na Javę.
Demon Coldmist,
2
W aplikacji java korzystającej z zależności springfox-swagger2 możesz zaimportować JSON do Postmana, jak opisano w tej odpowiedzi, otwierając przeglądarkę i kierując się na localhost: 8080 / v2 / api-docs
Nacho Mezzadra
1
@JDpawar Dzięki, import się powiódł, ale nie generuje żadnych informacji „body” w listonoszach dla żadnego interfejsu API POST. jakieś pomysły?
user1559625
36
Dzięki .Net Core jest to teraz bardzo proste:
Idziesz i znajdujesz URL JSON na swojej stronie swagger:
Kliknij ten link i skopiuj adres URL
Teraz przejdź do Postman i kliknij Importuj:
Wybierz to, czego potrzebujesz, a otrzymasz niezłą kolekcję punktów końcowych:
@Configuration
@EnableSwagger2
public class SwaggerConfig {
public static final Contact DEFAULT_CONTACT = new Contact("Usama Amjad", "https://stackoverflow.com/users/4704510/usamaamjad", "[email protected]");
public static final ApiInfo DEFAULT_API_INFO = new ApiInfo("Article API", "Article API documentation sample", "1.0", "urn:tos",
DEFAULT_CONTACT, "Apache 2.0", "http://www.apache.org/licenses/LICENSE-2.0", new ArrayList<VendorExtension>());
@Bean
public Docket api() {
Set<String> producesAndConsumes = new HashSet<>();
producesAndConsumes.add("application/json");
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(DEFAULT_API_INFO)
.produces(producesAndConsumes)
.consumes(producesAndConsumes);
}
}
Krok 3: Konfiguracja zakończona i teraz musisz udokumentować interfejsy API wcontrollers
@ApiOperation(value = "Returns a list Articles for a given Author", response = Article.class, responseContainer = "List")
@ApiResponses(value = { @ApiResponse(code = 200, message = "Success"),
@ApiResponse(code = 404, message = "The resource you were trying to reach is not found") })
@GetMapping(path = "/articles/users/{userId}")
public List<Article> getArticlesByUser() {
// Do your code
}
Stosowanie:
Możesz uzyskać dostęp do swojej dokumentacji, po http://localhost:8080/v2/api-docsprostu skopiuj ją i wklej w programie Postman, aby zaimportować kolekcję.
Opcjonalny interfejs Swagger: Możesz także używać samodzielnego interfejsu użytkownika bez żadnego innego klienta resztowego za pośrednictwem http://localhost:8080/swagger-ui.htmli jest całkiem niezły, możesz bezproblemowo hostować swoją dokumentację.
Odpowiedzi:
Pracuję na PHP i użyłem Swagger 2.0 do udokumentowania API. Dokument Swagger jest tworzony w locie (przynajmniej tego używam w PHP). Dokument jest generowany w formacie JSON.
Przykładowy dokument
Można to zaimportować do programu Postman w następujący sposób.
Możesz także użyć opcji „Importuj z łącza”. Tutaj wklej adres URL, który generuje format JSON interfejsów API z narzędzia Swagger lub dowolnego innego narzędzia dokumentu API.
To jest plik generowania mojego dokumentu (JSON). Jest w PHP. Nie mam pojęcia o JAVA razem z Swaggerem.
źródło
Dzięki .Net Core jest to teraz bardzo proste:
źródło
Zaakceptowana odpowiedź jest poprawna, ale przepiszę wszystkie kroki dla
java
.Obecnie używam
Swagger V2
zSpring Boot 2
i jest to prosty 3-etapowy proces.Krok 1: Dodaj wymagane zależności w
pom.xml
pliku. Druga zależność jest opcjonalna, używaj jej tylko wtedy, gdy potrzebujeszSwagger UI
.Krok 2: Dodaj klasę konfiguracji
Krok 3: Konfiguracja zakończona i teraz musisz udokumentować interfejsy API w
controllers
Stosowanie:
Możesz uzyskać dostęp do swojej dokumentacji, po
http://localhost:8080/v2/api-docs
prostu skopiuj ją i wklej w programie Postman, aby zaimportować kolekcję.Opcjonalny interfejs Swagger: Możesz także używać samodzielnego interfejsu użytkownika bez żadnego innego klienta resztowego za pośrednictwem
http://localhost:8080/swagger-ui.html
i jest całkiem niezły, możesz bezproblemowo hostować swoją dokumentację.źródło
Możesz to zrobić: Postman -> Import -> Link ->
{root_url}/v2/api-docs
źródło
Możesz również pobrać przykładowe pliki swagger online, aby to sprawdzić (jeśli masz błędy w swoim dokumencie swagger).
źródło