Je ne connais pas les serveurs Web dans mon travail Nous aimerions présenter swagger-codegen à ceux qui ont été invités à configurer un serveur Web pour PoC (et en quelques secondes). (Il peut ne pas être possible de configurer en quelques secondes, mais si vous écrivez les spécifications de l'API dans yaml, vous pouvez facilement configurer le serveur.)
swagger-codegen définit les spécifications d'API en YAML (ou JSON), Créer un serveur fictif selon la définition de l'API En outre, vous pouvez créer un écran d'interface utilisateur du navigateur où vous pouvez accéder à l'API comme indiqué ci-dessous.
Si vous n'avez pas JRE, téléchargez et installez à partir de ce qui suit.
Obtenu à partir du référentiel maven.
Cette fois, j'ai utilisé le 2.4.15 suivant.
Si vous définissez la spécification API, vous pouvez créer un serveur fictif en fonction de la définition. Créez un fichier comme celui ci-dessous.
swagger.yaml
swagger: "2.0"
info:
description: "Ceci est une API pour les animaleries."
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: "API d'information sur les animaux de compagnie"
description: "Renvoie des informations pour le petId spécifié"
parameters:
- name: "petId"
in: "path"
description: "ID de l'animal que vous souhaitez obtenir"
required: true
type: "integer"
format: "int64"
responses:
200:
description: "Réponse en cas de succès"
schema:
type: "object"
properties:
id:
type: "integer"
format: "int64"
name:
type: "string"
example: "doggie"
Veuillez vous référer à ce qui suit pour la signification de la description dans swagger.yml.
Cette fois, je veux utiliser le python familier, donc je vais créer un serveur simulé avec pytoh-flask.
> java -jar {Fichier jar téléchargé} generate -i swagger.yaml -l python-flask -o test-server
Vous pouvez créer Go, Node.js, Ruby on Rails, peu importe en changeant l'option -l
.
Voir ci-dessous ce que l'option -l
a d'autre.
Dans le cas de python-flask, vous pouvez créer un serveur simulé comme celui-ci. Un Dockerfile est également créé, il peut donc être utilisé comme conteneur Docker.
> 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
En cela, le traitement proprement dit est décrit dans la partie pet_pet_id_get
de default_controller.py
.
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
"""API d'information sur les animaux de compagnie
Renvoie des informations pour le petId spécifié# noqa: E501
:param petId:ID de l'animal que vous souhaitez obtenir
:type petId: int
:rtype: InlineResponse200
"""
return 'do some magic!'
Installez les packages requis. L'environnement créé par swagger-codegen écrit uniquement pip requirements.txt, Dans l'environnement conda, vous pouvez l'exécuter en installant ce qui suit.
> conda install connexion
> conda install swagger-ui-bundle
Commencez.
> cd test-server
> python -m swagger_server
Si vous accédez aux éléments suivants à partir d'un navigateur et que vous voyez l'écran, vous pouvez le démarrer.
Je vous remercie pour votre travail acharné!
Recommended Posts