Django APIs + React
Modern web development with Django Rest Framework & ReactJS
Django Boston (May 2018)
William S. Vincent
Who Am I?
William S. Vincent
API
William S. Vincent
Why APIs?
Pros
Cons
William S. Vincent
What is a web API?
William S. Vincent
HTTP
William S. Vincent
HTTP Verbs
Functionality
Create
Read
Update
Delete
HTTP Method/Verb
POST
GET
PUT
DELETE
Rough equivalence between CRUD & HTTP verbs
William S. Vincent
HTTP Status Codes
Code
2xx
3xx
4xx
5xx
Meaning
Success (200, 201)
Redirection (301)
Client error (404)
Server error (500)
William S. Vincent
API Endpoints
# GET returns collection of all users
# GET returns a single user
William S. Vincent
Django APIs
William S. Vincent
Building APIs with Django
William S. Vincent
Django vs Django API Structure
Django
template.html
urls.py
views.py
models.py
Django API
serializers.py
William S. Vincent
Django Rest Framework
William S. Vincent
Django + DRF
William S. Vincent
Django Blog
https://github.com/wsvincent/djangoboston-drf-react-blog
William S. Vincent
Adding DRF
William S. Vincent
Serializers
William S. Vincent
Serializers
# posts/serializers.py
from rest_framework import serializers
from . import models
class PostSerializer(serializers.ModelSerializer):
class Meta:
fields = ('id', 'title', 'body',)
model = models.Post
William S. Vincent
Browsable API
William S. Vincent
CORS (Cross-Origin Resource Sharing)
William S. Vincent
What We Didn’t Cover
William S. Vincent
Adding React
Or Vue, Angular, etc...
William S. Vincent
React setup
William S. Vincent
Project structure
frontend
├── public
├── src
├── App.js
backend
├── backend_project
├── settings.py
├── urls.py
├── posts
├── models.py
├── serializers.py
├── views.py
├── urls.py
William S. Vincent
App.js
William S. Vincent
Conclusion
William S. Vincent
Resources
Django Rest Framework Docs
http://www.django-rest-framework.org/��Demo Project
https://github.com/wsvincent/djangoboston-drf-react-blog�
Slides
https://tinyurl.com/drf-react
My Site
https://wsvincent.com/
�
William S. Vincent