aiohttp-swagger icon indicating copy to clipboard operation
aiohttp-swagger copied to clipboard

Support OpenAPI 3

Open skyline-gleb opened this issue 7 years ago • 9 comments

Hi! It is planned to support a new version? Now, with app:

from aiohttp import web
from aiohttp_swagger import *


async def ping(request):
    return web.Response(text="pong")

app = web.Application()
app.router.add_route('GET', "/ping", ping)
setup_swagger(app, swagger_from_file="swagger.yaml")
web.run_app(app, host="127.0.0.1")

and swagger.yaml:

---

openapi: 3.0.0
info:
  title: API
  description: description
  version: 0.1.9

paths:
  /ping:
    get:
      responses:
        '200':
          description: return "pong"

i get an error (in browser console):

Uncaught TypeError: Cannot read property 'definitions' of null
    at module.exports.Resolver.resolve (swagger-ui.js:4566)
    at swagger-ui.js:3596
    at module.exports.SwaggerSpecConverter.finish (swagger-ui.js:6592)
    at module.exports.SwaggerSpecConverter.convert (swagger-ui.js:5966)
    at response (swagger-ui.js:3594)
    at responseInterceptor (swagger-ui.js:4211)
    at obj.on.response (swagger-ui.js:4226)
    at swagger-ui.js:4489
    at Request.callback (swagger-ui.js:20775)
    at Request.<anonymous> (swagger-ui.js:20597)

Use aiohttp-swagger version 1.0.5

skyline-gleb avatar Nov 24 '17 08:11 skyline-gleb

yes, please add support

kamikaze avatar Feb 01 '18 13:02 kamikaze

+1

motinani avatar Feb 12 '18 07:02 motinani

+1

Valian avatar Apr 04 '18 20:04 Valian

+1

levkovskyi avatar Dec 13 '18 22:12 levkovskyi

+1

Chris-hughes10 avatar Feb 26 '19 10:02 Chris-hughes10

https://pypi.org/project/aiohttp-swagger3/

agronholm avatar Sep 10 '19 06:09 agronholm

Use ui_version=3 to use open api v3 instead of swagger v2.

setup_swagger(app, ui_version=3)

Gronis avatar Aug 20 '20 13:08 Gronis

Use ui_version=3 to use open api v3 instead of swagger v2.

setup_swagger(app, ui_version=3)

have you tried to use swagger ui after that? It doesn't work with ui_version 3

kamikaze avatar Aug 20 '20 21:08 kamikaze

have you tried to use swagger ui after that? It doesn't work with ui_version 3

Yes, I can use swagger ui after that. However, I specify more arguments than in my initial answer, maybe that is needed for the ui to work?

setup_swagger(api,
              title="My API",
              ui_version=3,
              swagger_url="/doc",
              description="API definition for My API",
              api_version="1.0.0",
              definitions=definitions,
              api_base_url='/api/v1',

definitions is a dict with model schemas.

Gronis avatar Aug 21 '20 13:08 Gronis