Ich arbeite an PHP und habe Swagger 2.0 verwendet, um die APIs zu dokumentieren. Das Swagger-Dokument wird im laufenden Betrieb erstellt (zumindest verwende ich das in PHP). Das Dokument wird im JSON-Format generiert.
Beispieldokument
{
"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": {
}
}
Dies kann wie folgt in Postman importiert werden.
Klicken Sie auf die Schaltfläche " Importieren " in der oberen linken Ecke der Postman-Benutzeroberfläche.
Sie sehen mehrere Optionen zum Importieren des API-Dokuments. Klicken Sie auf " Rohtext einfügen ".
Fügen Sie das JSON-Format in den Textbereich ein und klicken Sie auf Importieren.
Sie sehen alle Ihre APIs als " Postman Collection " und können sie vom Postman aus verwenden.
Sie können auch "Aus Link importieren" verwenden. Fügen Sie hier die URL ein, die das JSON-Format der APIs aus dem Swagger oder einem anderen API-Dokument-Tool generiert.
Dies ist meine JSON-Generierungsdatei (Document). Es ist in PHP. Ich habe keine Ahnung von JAVA zusammen mit Swagger.
danke, aber jetzt ist das problem, wie ich die datei von swagger-ui exportieren kann? und der link ist nutzlos.
Demon Coldmist
@DemonColdmist Ich habe den Code zum Generieren der API hinzugefügt. Grundsätzlich durchsucht es das gesamte Verzeichnis, überprüft die Anmerkungen und gibt die JSON / YAML-Ausgabe aus. Entschuldigung, aber ich habe Swagger nicht mit JAVA verwendet.
JDpawar
Danke, wenn es in PHP exportiert werden könnte, dann auch Java. Ich werde es in Java übersetzen.
Dämon Coldmist
2
In einer Java-App, die die Abhängigkeit springfox-swagger2 verwendet, können Sie den JSON wie in dieser Antwort beschrieben in Postman importieren lassen, indem Sie einen Browser öffnen und zu localhost gehen: 8080 / v2 / api-docs
Nacho Mezzadra
1
@JDpawar Danke, der Import ist erfolgreich, aber es werden keine Post-Informationen in Postman für eine POST-API generiert. irgendwelche Ideen?
user1559625
30
Mit .Net Core ist es jetzt sehr einfach:
Sie finden die JSON-URL auf Ihrer Prahlerseite:
Klicken Sie auf diesen Link und kopieren Sie die URL
Gehen Sie nun zu Postman und klicken Sie auf Importieren:
Wählen Sie aus, was Sie benötigen, und Sie erhalten eine schöne Sammlung von Endpunkten:
Die akzeptierte Antwort ist korrekt, aber ich werde die vollständigen Schritte für neu schreiben java.
Ich benutze derzeit Swagger V2mit Spring Boot 2und es ist unkompliziert 3-Schritt-Prozess.
Schritt 1: Fügen Sie der pom.xmlDatei die erforderlichen Abhängigkeiten hinzu . Die zweite Abhängigkeit ist optional. Verwenden Sie sie nur, wenn Sie sie benötigen Swagger UI.
@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);
}
}
Schritt 3: Setup abgeschlossen und jetzt müssen Sie APIs in dokumentierencontrollers
@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
}
Verwendung:
Sie können auf Ihre Dokumentation zugreifen, indem Sie sie http://localhost:8080/v2/api-docseinfach kopieren und in Postman einfügen, um die Sammlung zu importieren.
Optionale Swagger-Benutzeroberfläche: Sie können die eigenständige Benutzeroberfläche auch ohne einen anderen Rest-Client über verwenden, http://localhost:8080/swagger-ui.htmlund es ist ziemlich gut, dass Sie Ihre Dokumentation problemlos hosten können.
Antworten:
Ich arbeite an PHP und habe Swagger 2.0 verwendet, um die APIs zu dokumentieren. Das Swagger-Dokument wird im laufenden Betrieb erstellt (zumindest verwende ich das in PHP). Das Dokument wird im JSON-Format generiert.
Beispieldokument
Dies kann wie folgt in Postman importiert werden.
Sie können auch "Aus Link importieren" verwenden. Fügen Sie hier die URL ein, die das JSON-Format der APIs aus dem Swagger oder einem anderen API-Dokument-Tool generiert.
Dies ist meine JSON-Generierungsdatei (Document). Es ist in PHP. Ich habe keine Ahnung von JAVA zusammen mit Swagger.
quelle
Mit .Net Core ist es jetzt sehr einfach:
quelle
Die akzeptierte Antwort ist korrekt, aber ich werde die vollständigen Schritte für neu schreiben
java
.Ich benutze derzeit
Swagger V2
mitSpring Boot 2
und es ist unkompliziert 3-Schritt-Prozess.Schritt 1: Fügen Sie der
pom.xml
Datei die erforderlichen Abhängigkeiten hinzu . Die zweite Abhängigkeit ist optional. Verwenden Sie sie nur, wenn Sie sie benötigenSwagger UI
.Schritt 2: Konfigurationsklasse hinzufügen
Schritt 3: Setup abgeschlossen und jetzt müssen Sie APIs in dokumentieren
controllers
Verwendung:
Sie können auf Ihre Dokumentation zugreifen, indem Sie sie
http://localhost:8080/v2/api-docs
einfach kopieren und in Postman einfügen, um die Sammlung zu importieren.Optionale Swagger-Benutzeroberfläche: Sie können die eigenständige Benutzeroberfläche auch ohne einen anderen Rest-Client über verwenden,
http://localhost:8080/swagger-ui.html
und es ist ziemlich gut, dass Sie Ihre Dokumentation problemlos hosten können.quelle
Sie können auch einige Beispiel-Swagger-Dateien online abrufen, um dies zu überprüfen (wenn Sie Fehler in Ihrem Swagger-Dokument haben).
quelle