一个可插拔的API规范生成器。目前支持OpenAPI规范(即Swagger规范)。
项目描述
Friendly fork of apispec waiting for merging instance support
A pluggable API specification generator. Currently supports the OpenAPI Specification (f.k.a. the Swagger specification).
特性
支持OpenAPI规范版本2(即Swagger规范),对版本3有有限支持。
框架无关
包含对marshmallow、Flask、Tornado和bottle的插件。
解析文档字符串的实用工具
示例应用
from apispec import APISpec
from flask import Flask, jsonify
from marshmallow import Schema, fields
# Create an APISpec
spec = APISpec(
title='Swagger Petstore',
version='1.0.0',
plugins=[
'apispec.ext.flask',
'apispec.ext.marshmallow',
],
)
# Optional marshmallow support
class CategorySchema(Schema):
id = fields.Int()
name = fields.Str(required=True)
class PetSchema(Schema):
category = fields.Nested(CategorySchema, many=True)
name = fields.Str()
# Optional Flask support
app = Flask(__name__)
@app.route('/random')
def random_pet():
"""A cute furry animal endpoint.
---
get:
description: Get a random pet
responses:
200:
description: A pet to be returned
schema: PetSchema
"""
pet = get_random_pet()
return jsonify(PetSchema().dump(pet).data)
# Register entities and paths
spec.definition('Category', schema=CategorySchema)
spec.definition('Pet', schema=PetSchema)
with app.test_request_context():
spec.add_path(view=random_pet)
生成的OpenAPI规范
spec.to_dict()
# {
# "info": {
# "title": "Swagger Petstore",
# "version": "1.0.0"
# },
# "swagger": "2.0",
# "paths": {
# "/random": {
# "get": {
# "description": "A cute furry animal endpoint.",
# "responses": {
# "200": {
# "schema": {
# "$ref": "#/definitions/Pet"
# },
# "description": "A pet to be returned"
# }
# },
# }
# }
# },
# "definitions": {
# "Pet": {
# "properties": {
# "category": {
# "type": "array",
# "items": {
# "$ref": "#/definitions/Category"
# }
# },
# "name": {
# "type": "string"
# }
# }
# },
# "Category": {
# "required": [
# "name"
# ],
# "properties": {
# "name": {
# "type": "string"
# },
# "id": {
# "type": "integer",
# "format": "int32"
# }
# }
# }
# },
# }
spec.to_yaml()
# definitions:
# Pet:
# enum: [name, photoUrls]
# properties:
# id: {format: int64, type: integer}
# name: {example: doggie, type: string}
# info: {description: 'This is a sample Petstore server. You can find out more ', title: Swagger Petstore, version: 1.0.0}
# parameters: {}
# paths: {}
# security:
# - apiKey: []
# swagger: '2.0'
# tags: []
文档
生态系统
在GitHub wiki上可以找到与apispec相关的库列表
许可证
MIT许可。有关更多详细信息,请参阅捆绑的LICENSE文件。
项目详情
关闭
hapic_apispec-0.37.0.tar.gz的散列值
算法 | 散列摘要 | |
---|---|---|
SHA256 | cf8da2ea75586953b339c9439c9ca8a86c058f2adff657c0c8ed553d1b3a1ed3 |
|
MD5 | 8d97bf229daa0ef14dbf41d63400b138 |
|
BLAKE2b-256 | 92f5f1c55739a61220df57dfd0a194d2984d780c822e6a87036d129d3bba0ddf |