$30 off During Our Annual Pro Sale. View Details »

Building a Django API and SDK

Pablo
April 19, 2016

Building a Django API and SDK

Pablo

April 19, 2016
Tweet

Other Decks in Technology

Transcript

  1. Django API & SDK
    LEANO Pablo
    @pablo_amnesiac

    View Slide

  2. ● Django Rest Framework
    ● Swagger Specification
    ● Django Rest Swagger
    ● Apimatic.io
    ● Live Demo
    ● Tips and Advices
    ● Questions

    View Slide

  3. Django REST Framework (DRF)
    “Django REST framework is a powerful and flexible toolkit for building
    Web APIs.”
    A collection of generic classes
    + Authentication (tokens, sessions, oauth, etc)
    + Serializers / Renders
    + Some useful tools (tests, throttling, etc.)

    View Slide

  4. Django REST Framework (DRF) Save data

    View Slide

  5. Django REST Framework (DRF) Get data

    View Slide

  6. Swagger Specification
    “Swagger is a simple yet powerful representation of your RESTful API”
    ● Not a library, not code, just a JSON file.
    ● Lots of goodies:
    ○ Swagger UI to build a documentation reference or a sandbox for users
    ○ Swagger Editor / Validator
    ○ Swagger Codegen creates the code for client and server from a swagger file

    View Slide

  7. Swagger
    Specification
    V 2.0

    View Slide

  8. Django Rest Swagger
    “Django REST Swagger is a library that generates Swagger documentation from your Django
    Rest Framework API code.”
    ● The bad news: generates a Swagger v 1.0 and not Swagger 2.0
    ● The good news: In Botify we’ve forked repo and changed a lot the code to produce a
    Swagger 2.0
    ● The bad news: The code is too specific (and dirty) that it won’t probably fit your needs.
    ● The good news: You can fork Django Rest Swagger Too!!!

    View Slide

  9. Apimatic.io
    “Generate high-quality SDKs for your RESTful APIs with our
    customizable codegen engine.”
    ● Long story short: takes your swagger file and generates a SDK
    ● Like Swagger codegen
    ● Saas

    View Slide

  10. Live Demo

    View Slide

  11. Tips and Advices

    View Slide

  12. Swagger can’t describe everything
    [
    ["John", "[email protected]", true, 1, 9.23, false, ["voice", "guitar"]],
    ["Paul", "[email protected]", false, 2, 7.23, false, ["voice", "bass"]]
    ["Ringo", "[email protected]", true, 3, 1.23, false, ["drums"]]
    ...
    ]

    View Slide

  13. Swagger can’t describe everything
    {
    "john": {
    "id": 1,
    "email": "[email protected]"
    },
    "paul": {
    "id": 2,
    "email": "[email protected]"
    },
    "ringo": {
    "id": 3,
    "email": "[email protected]"
    },
    ...
    }

    View Slide

  14. CBV vs FBV, the old debate
    ● Don’t use FBV, you can’t introspect them. You might as well write
    the swagger file manually
    ● Generic Classes are your friends and they help you DRY

    View Slide

  15. To Keep In Mind When Creating an API
    ● Keep It Clean
    ○ Use serializers
    ○ Use Generic classes
    ○ Skinny Views (AKA Controllers)
    ● RESTful Is the answer
    ○ The more you stay REST, the easier to maintain.
    ○ The more you stay normalized (DB), the less bugs you’ll have.

    View Slide

  16. We’re hiring!!!
    www.botify.com/jobs

    View Slide

  17. Questions?

    View Slide