💻
Bookstores
  • Tech Stacks
  • Django
    • Django REST framework
    • Serializer validation
    • Form validation in view class
  • Use Open API data model
  • Server Side react javascript
  • React context and redux difference
  • Migrate state management from Redux to Jotai
  • Migrate from REST to GraphQL
  • Migrate from REST to gRPC
  • How to handle cross origin?
Powered by GitBook
On this page
  • Use Open API data model
  • Prepare the REST API to Open API (swagger).
  • Code Generator

Was this helpful?

Use Open API data model

PreviousForm validation in view classNextServer Side react javascript

Last updated 4 years ago

Was this helpful?

Use Open API data model

Prepare the REST API to Open API (swagger).

  • To be simple comparison, I migrated project to .

  • What's in the bookstore_openapi project?

    • Install : pip install -U drf-yasg

  • The lastest djangorestframework is 3.12, which is not compatible with drf-yasg.

    Make sure you have pip install djangorestframework==3.11.1

  • Also check drf-yasg document for how to set up settings.py and urls.py

  • Then copy the whole book models, serializers, api.

  • Start server. In browser, open http://127.0.0.1:8000/swagger.yaml.

Code Generator

  • : this is openapi code generator home page,

    you may got lost in here.

  • , to download the latest one. Or in windows, open PowerShell to download it :

    Invoke-WebRequest -OutFile swagger-codegen-cli.jar https://repo1.maven.org/maven2/io/swagger/swagger-codegen-cli/2.4.15/swagger-codegen-cli-2.4.15.jar

  • To use cli

    • Generate Flask code

        d:\dvp\swagger>java -jar openapi-generator-cli.jar generate ^
          -i bookstore.yaml ^
          -g python-flask ^
          -o samples/bookstore/flask
    • Generate nodejs code : use the swagger-codegen-cli.jar.

        d:\dvp\swagger>java -jar swagger-codegen-cli.jar generate ^
          -i bookstore.yaml ^
          -l nodejs-server ^
          -o samples/bookstore/nodejs
    • Generate go code

        d:\dvp\swagger>java -jar openapi-generator-cli.jar generate ^
          -i bookstore.yaml ^
          -g go-gin-server ^
          -o samples/bookstore/gin
        d:\dvp\swagger>java -jar openapi-generator-cli.jar generate ^
          -i bookstore.yaml ^
          -g go-server ^
          -o samples/bookstore/go
  • Actually, [django REST framework support] OpenAPI(); however, the way to download yaml file is odd. Need further investigate.

bookstore_api
bookstore_openapi
drf-yasg
https://github.com/axnsan12/drf-yasg
https://openapi-generator.tech/
jar file repository page
More generators
https://www.django-rest-framework.org/community/3.10-announcement/