Ich bin mit Webservern in meiner Arbeit nicht vertraut Wir möchten denjenigen, denen gesagt wurde, dass sie einen Webserver für PoC einrichten sollen (und in Sekunden), swagger-codegen vorstellen. (Die Einrichtung ist möglicherweise nicht in Sekunden möglich. Wenn Sie jedoch die API-Spezifikationen in yaml schreiben, können Sie den Server problemlos einrichten.)
swagger-codegen definiert API-Spezifikationen in YAML (oder JSON), Erstellen Sie einen Mock-Server gemäß der API-Definition Darüber hinaus können Sie einen Browser-UI-Bildschirm erstellen, auf dem Sie die API wie unten gezeigt aufrufen können.
Wenn Sie nicht über JRE verfügen, laden Sie Folgendes herunter und installieren Sie es.
Wird aus dem Maven-Repository bezogen.
Dieses Mal habe ich das folgende 2.4.15 verwendet.
Wenn Sie die API-Spezifikation definieren, können Sie einen Mock-Server gemäß der Definition erstellen. Erstellen Sie eine Datei wie die folgende.
swagger.yaml
swagger: "2.0"
info:
description: "Dies ist eine API für Zoohandlungen."
version: "1.0.0"
title: "Petstore API"
termsOfService: "http://swagger.io/terms/"
contact:
email: "[email protected]"
license:
name: "Apache 2.0"
url: "http://www.apache.org/licenses/LICENSE-2.0.html"
paths:
/pet/{petId}:
get:
summary: "Haustierinformations-API"
description: "Gibt Informationen für die angegebene petId zurück"
parameters:
- name: "petId"
in: "path"
description: "ID des Haustieres, das Sie erhalten möchten"
required: true
type: "integer"
format: "int64"
responses:
200:
description: "Antwort auf Erfolg"
schema:
type: "object"
properties:
id:
type: "integer"
format: "int64"
name:
type: "string"
example: "doggie"
Die Bedeutung der Beschreibung in swagger.yml finden Sie im Folgenden.
Dieses Mal möchte ich die bekannte Python verwenden, also werde ich einen Mock-Server mit Pytoh-Flask erstellen.
> java -jar {JAR-Datei heruntergeladen} generate -i swagger.yaml -l python-flask -o test-server
Sie können Go, Node.js, Ruby on Rails erstellen, indem Sie die Option -l
ändern.
Weiter unten erfahren Sie, was die Option -l
sonst noch bietet.
Im Fall von Python-Flask können Sie einen solchen Mock-Server erstellen. Eine Docker-Datei wird ebenfalls erstellt, sodass sie als Docker-Container verwendet werden kann.
> tree server
server
├── Dockerfile
├── README.md
├── git_push.sh
├── requirements.txt
├── setup.py
├── swagger_server
│ ├── __init__.py
│ ├── __main__.py
│ ├── controllers
│ │ ├── __init__.py
│ │ └── default_controller.py
│ ├── encoder.py
│ ├── models
│ │ ├── __init__.py
│ │ ├── base_model_.py
│ │ └── inline_response200.py
│ ├── swagger
│ │ └── swagger.yaml
│ ├── test
│ │ ├── __init__.py
│ │ └── test_default_controller.py
│ └── util.py
├── test-requirements.txt
└── tox.ini
Hierbei wird die eigentliche Verarbeitung im Teil pet_pet_id_get
von default_controller.py
beschrieben.
default_controller.py
import connexion
import six
from swagger_server.models.inline_response200 import InlineResponse200 # noqa: E501
from swagger_server import util
def pet_pet_id_get(petId): # noqa: E501
"""Haustierinformations-API
Gibt Informationen für die angegebene petId zurück# noqa: E501
:param petId:ID des Haustieres, das Sie erhalten möchten
:type petId: int
:rtype: InlineResponse200
"""
return 'do some magic!'
Installieren Sie die erforderlichen Pakete. Die von swagger-codegen erstellte Umgebung schreibt nur pip require.txt, In der Conda-Umgebung können Sie es ausführen, indem Sie Folgendes installieren.
> conda install connexion
> conda install swagger-ui-bundle
Anlaufen.
> cd test-server
> python -m swagger_server
Wenn Sie über einen Browser auf Folgendes zugreifen und den Bildschirm sehen, können Sie ihn starten.
Danke für deine harte Arbeit!