SlideShare a Scribd company logo
Django REST Framework
API
Masashi SHIBATA
c-bata c_bata_! "
PyCon JP 2018 Day1
go-prompt, kube-prompt


https://codezine.jp/article/corner/749
c-bata c_bata_! "
Django REST Framework における API 実装プラクティス | PyCon JP 2018
Django REST Framework における API 実装プラクティス | PyCon JP 2018
Django REST Framework における API 実装プラクティス | PyCon JP 2018
Topic 1
PageNumberPagination
CursorPagination
LimitOffsetPagination
CLASS
http://example.com/snippets/?page=4
PageNumberPagination
http://example.com/snippets/?limit=5&offset=400
prev: http://example.com/snippets/?cursor=cj0xJnA9MjAxOC
next: http://example.com/snippets/?cursor=povlJDFkfhgf0lAj
LimitOffsetPagination
CursorPagination
http://example.com/snippets/?page=4
PageNumberPagination
http://example.com/snippets/?limit=5&offset=400
prev: http://example.com/snippets/?cursor=cj0xJnA9MjAxOC
next: http://example.com/snippets/?cursor=povlJDFkfhgf0lAj
LimitOffsetPagination
CursorPagination
per_page
http://example.com/snippets/?page=4
PageNumberPagination
http://example.com/snippets/?limit=50&offset=250
prev: http://example.com/snippets/?cursor=cj0xJnA9MjAxOC
next: http://example.com/snippets/?cursor=povlJDFkfhgf0lAj
LimitOffsetPagination
CursorPagination
(offset) (limit)
page
http://example.com/snippets/?page=4
PageNumberPagination
http://example.com/snippets/?limit=50&offset=250
prev: http://example.com/snippets/?cursor=cj0xJnA9MjAxOC
next: http://example.com/snippets/?cursor=povlJDFkfhgf0lAj
LimitOffsetPagination
CursorPagination
ID( )
( )
http://example.com/snippets/?page=4
PageNumberPagination
http://example.com/snippets/?limit=50&offset=250
prev: http://example.com/snippets/?cursor=cj0xJnA9MjAxOC
next: http://example.com/snippets/?cursor=povlJDFkfhgf0lAj
LimitOffsetPagination
CursorPagination
http://example.com/snippets/?page=4
PageNumberPagination
http://example.com/snippets/?limit=50&offset=250
prev: http://example.com/snippets/?cursor=cj0xJnA9MjAxOC
next: http://example.com/snippets/?cursor=povlJDFkfhgf0lAj
LimitOffsetPagination
CursorPagination
(or )
http://example.com/snippets/?page=4
PageNumberPagination
http://example.com/snippets/?limit=50&offset=250
prev: http://example.com/snippets/?cursor=cj0xJnA9MjAxOC
next: http://example.com/snippets/?cursor=povlJDFkfhgf0lAj
LimitOffsetPagination
CursorPagination
※ max_id since_id
examle.com/snippets?since_id=6
http://example.com/snippets/?page=4
PageNumberPagination
http://example.com/snippets/?limit=50&offset=250
prev: http://example.com/snippets/?cursor=cj0xJnA9MjAxOC
next: http://example.com/snippets/?cursor=povlJDFkfhgf0lAj
LimitOffsetPagination
CursorPagination
id or
http://example.com/snippets/?page=4
PageNumberPagination
http://example.com/snippets/?limit=50&offset=250
prev: http://example.com/snippets/?cursor=cj0xJnA9MjAxOC
next: http://example.com/snippets/?cursor=povlJDFkfhgf0lAj
LimitOffsetPagination
CursorPagination
Django REST Framework における API 実装プラクティス | PyCon JP 2018
1 74 102 85 113 96 12
1 74 102 85 113 96 12
1 74 102 85 113 96 12
1 74 102 85 113 96 12
1 74 102 85 113 96 12
id = 3
id=6
Django REST Framework における API 実装プラクティス | PyCon JP 2018
1 74 102 85 113 96 12
1 74 102 85 113 96 12
1 74 102 85 113 96 121 74 102 85 113 96 12
1 74 102 85 113 96 12
5
1
1 74 102 85 113 96 12
1 74 102 85 113 96 12
1 74 102 85 113 96 12
1 74 102 85 113 96 12
Django REST Framework における API 実装プラクティス | PyCon JP 2018
id id id id id id id id
3
id id id id id id id id id id id id id id id id
id id id id id id id id id id id id id id id id
id id id id id id id id id id id id id id id id
id id id id id id id id id id id id id id id id


Django REST Framework における API 実装プラクティス | PyCon JP 2018
Django REST Framework における API 実装プラクティス | PyCon JP 2018
=
SELECT id FROM snippets
WHERE is_public = 1
AND created_at > '2018-09-15 08:28:53.312612’
ORDER BY created_at ASC LIMIT 101;
ALTER TABLE snippets
ADD INDEX ix_created_public(created_at, is_public);
SQL
Index
INDEX
D, J, Z
INDEX
A, B, D
+
A 1
INDEX
F, H, J B 8
INDEX
L, P, Z D 20
INDEX
20, 60, 80
INDEX
1, 8, 20
+
1 c-bata 24
INDEX
21, 50, 60
+
8 denari 23
INDEX
65, 76, 80
+
20 cstoku 25
(InnoDB)
INDEX
D, J, Z
INDEX
A, B, D
+
A 1
INDEX
F, H, J B 8
INDEX
L, P, Z D 20
INDEX
20, 60, 80
INDEX
1, 8, 20
+
1 c-bata 24
INDEX
21, 50, 60
+
8 denari 23
INDEX
65, 76, 80
+
20 cstoku 25
(InnoDB)
INDEX
D, J, Z
INDEX
A, B, D
+
A 1
INDEX
F, H, J B 8
INDEX
L, P, Z D 20
INDEX
20, 60, 80
INDEX
1, 8, 20
+
1 c-bata 24
INDEX
21, 50, 60
+
8 denari 23
INDEX
65, 76, 80
+
20 cstoku 25
(InnoDB)
INDEX
INDEX
D, J, Z
INDEX
A, B, D
+
A 1
INDEX
F, H, J B 8
INDEX
L, P, Z D 20
INDEX
20, 60, 80
INDEX
1, 8, 20
+
1 c-bata 24
INDEX
21, 50, 60
+
8 denari 23
INDEX
65, 76, 80
+
20 cstoku 25
(InnoDB)
INDEX
D, J, Z
INDEX
A, B, D
+
A 1
INDEX
F, H, J B 8
INDEX
L, P, Z D 20
INDEX
20, 60, 80
INDEX
1, 8, 20
+
1 c-bata 24
INDEX
21, 50, 60
+
8 denari 23
INDEX
65, 76, 80
+
20 cstoku 25
(InnoDB)
OFFSET
INDEX
D, J, Z
INDEX
A, B, D
+
A 1
INDEX
F, H, J B 8
INDEX
L, P, Z D 20
INDEX
20, 60, 80
INDEX
1, 8, 20
+
1 c-bata 24
INDEX
21, 50, 60
+
8 denari 23
INDEX
65, 76, 80
+
20 cstoku 25
(InnoDB)
SELECT id FROM snippets
WHERE is_public = 1
AND created_at > '2018-09-15 08:28:53.312612’
ORDER BY created_at ASC LIMIT 101;
ALTER TABLE snippets
ADD INDEX ix_created_public(created_at, is_public);
SQL
Index
SELECT id FROM snippets
WHERE is_public = 1
AND created_at > '2018-09-15 08:28:53.312612’
ORDER BY created_at ASC LIMIT 101;
ALTER TABLE snippets
ADD INDEX ix_created_public(created_at, is_public);
SQL
Index
id, is_public, created_at
SELECT id FROM snippets
WHERE is_public = 1
AND created_at > '2018-09-15 08:28:53.312612’
ORDER BY created_at ASC LIMIT 101;
ALTER TABLE snippets
ADD INDEX ix_created_public(created_at, is_public);
SQL
Index
id, is_public, created_at
SELECT id FROM snippets
WHERE is_public = 1
AND created_at > '2018-09-15 08:28:53.312612’
ORDER BY created_at ASC LIMIT 101;
ALTER TABLE snippets
ADD INDEX ix_created_public(created_at, is_public);
SQL
Index
id, is_public, created_at
created_at is_public
Django REST Framework における API 実装プラクティス | PyCon JP 2018
Topic 2
AnonRateThrottle
ScopedRateThrottle
UserRateThrottle
KEYWORDS
•
• CDN (akamai, fastly, cloudflare, …)
• (Nginx, apache, …)
• Django
• AnonRateThrottle
• UserRateThrottle
• ScopedRateThrottle
• CDN Rate Limiting, DDoS Protection
• https://docs.fastly.com/api/
• https://developer.akamai.com/blog/2018/05/30/
demystifying-api-rate-limiting
•
• https://www.nginx.com/blog/rate-limiting-nginx/
• AnonRateThrottle:
• IP (X-Forwarded-For WSGI environ
REMOTE_ADDR )
• UserRateThrottle:
•
• ScopedRateThrottle:
•
• AnonRateThrottle:
• IP (X-Forwarded-For WSGI environ
REMOTE_ADDR )
• UserRateThrottle:
•
• ScopedRateThrottle:
•
CDN Nginx
• AnonRateThrottle:
• IP (X-Forwarded-For WSGI environ
REMOTE_ADDR )
• UserRateThrottle:
•
• ScopedRateThrottle:
•
Github
REST_FRAMEWORK = {
'DEFAULT_THROTTLE_CLASSES': (
‘rest_framework.throttling.AnonRateThrottle',
‘rest_framework.throttling.UserRateThrottle',
),
'DEFAULT_THROTTLE_RATES': {
'anon': ‘10/min',
'user': ‘100/min'
}
}
REST_FRAMEWORK = {
'DEFAULT_THROTTLE_CLASSES': (
‘rest_framework.throttling.AnonRateThrottle',
‘rest_framework.throttling.UserRateThrottle',
),
'DEFAULT_THROTTLE_RATES': {
'anon': ‘10/min',
'user': ‘100/min'
}
}
sec, min, hour, day
1
s m, h, d
REST_FRAMEWORK = {
'DEFAULT_THROTTLE_CLASSES': (
‘rest_framework.throttling.AnonRateThrottle',
‘rest_framework.throttling.UserRateThrottle',
),
'DEFAULT_THROTTLE_RATES': {
'anon': ‘10/min',
'user': ‘100/min'
}
}
Django
LocalMemCache
REST_FRAMEWORK = {
'DEFAULT_THROTTLE_CLASSES': (
‘rest_framework.throttling.AnonRateThrottle',
‘rest_framework.throttling.UserRateThrottle',
),
'DEFAULT_THROTTLE_RATES': {
'anon': ‘10/min',
'user': ‘100/min'
}
}
Github
RateThrottle
https://github.com/c-bata/django-api-practices
•
• clients/dos.py : 10
• clients/throttle_client.py :
•
• RATE_LIMIT=true
• anon: 3req/s , user: 10req/s
•
• clients/dos.py : 10
• clients/throttle_client.py :
•
• RATE_LIMIT=true
• anon: 3req/s , user: 10req/s
https://github.com/c-bata/django-api-practices
TokenBucketAlgorithm
Python 2
14
Django REST Framework における API 実装プラクティス | PyCon JP 2018
Django REST Framework における API 実装プラクティス | PyCon JP 2018
• CDN Nginx
• REST Framework 3
• UserRateLimit
• Rate Limit 

Topic 3
TokenAuthentication JWT
TokenAuthentication
djangorestframework-jwt
CLASS
• TokenAuthentication:
• djangorestframework-jwt: JSON Web Token
• https://github.com/GetBlimp/django-rest-framework-jwt
• Refresh
JWT
JWT
JSON Web Token
Claim JSON 

( RFC7519)
https://jwt.io
https://jwt.io
{header}.{payload}.{signature}
header claims urlsafe base64 encode
https://jwt.io
( JWT)
https://jwt.io
payload urlsafe base64 decode
RS HS
• HMAC: ) HS256
•
•
•
• : ) RS256. PS ES
•
•
RS HS
• HMAC: ) HS256
•
•
•
• : ) RS256
•
•


HMAC
RS HS
• HMAC: ) HS256
•
•
•
• : ) RS256
•
•
djangorestframework-jwt 

HS256
RS HS
• HMAC: ) HS256
•
•
•
• : ) RS256
•
•




) Firebase JWT
RS HS
• HMAC: ) HS256
•
•
•
• : ) RS256
•
•
https://pyjwt.readthedocs.io/en/latest/algorithms.html
PyJWT
• TokenAuthentication
• djangorestframework-jwt
• JWT
• JWT
• HMAC
•
Topic 4
HATEOAS
Versioning
Specifying media type
KEYWORDS
• HATEOAS (Hypertext As The Engine Of Application State)
•
•
•
API
Django REST Framework
HATEOAS
Hypertext As The Engine Of Application State
URI 

API DefaultRouter 

HyperLinkedModelSerializer
$ curl http://localhost:8000/api/ | jq .
{
"snippets": "http://localhost:8000/api/snippets/"
"users": “http://localhost:8000/api/users/“
}


• rest_framework.urlpatterns.format_suffix_patterns


• rest_framework.urlpatterns.format_suffix_patterns 

$ curl -H 'Accept: text/html' <your api endpoint>
BrowsableAPIRenderer
$ curl -u user:pass -d '{}' 
> http://127.0.0.1:8000/api/snippets/ | jq .
{
"title": [
" "
],
"created_by": [
" "
]
}
example.com/v1.0/snippets

example.com/snippets?v=2.0
v1.example.com/snippets
Accept: application/json; version=3.0
•
•
• JWT
•
THANK YOU

More Related Content

PDF
例外設計における大罪
PDF
ヤフーのクラウドネイティブへの取り組みとそれを支えるシステム開発 #CNDT2019 #OSDT2019 #RoomE #1E4
PDF
Flutter移行の苦労と、乗り越えた先に得られたもの
PDF
IoT時代におけるストリームデータ処理と急成長の Apache Flink
PDF
マイクロサービス 4つの分割アプローチ
PPTX
KeycloakでAPI認可に入門する
PDF
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
例外設計における大罪
ヤフーのクラウドネイティブへの取り組みとそれを支えるシステム開発 #CNDT2019 #OSDT2019 #RoomE #1E4
Flutter移行の苦労と、乗り越えた先に得られたもの
IoT時代におけるストリームデータ処理と急成長の Apache Flink
マイクロサービス 4つの分割アプローチ
KeycloakでAPI認可に入門する
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -

What's hot (20)

PDF
Swagger ではない OpenAPI Specification 3.0 による API サーバー開発
PPTX
NGINXをBFF (Backend for Frontend)として利用した話
PPTX
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
PDF
カスタムプランと汎用プラン
PDF
組織にテストを書く文化を根付かせる戦略と戦術
PDF
PostgreSQL13でのレプリケーション関連の改善について(第14回PostgreSQLアンカンファレンス@オンライン)
PDF
FIWARE勉強会 20190913
PPTX
Gocon2017:Goのロギング周りの考察
PDF
爆速クエリエンジン”Presto”を使いたくなる話
PDF
オススメの標準・準標準パッケージ20選
PDF
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
PDF
あなたの知らないPostgreSQL監視の世界
PPTX
initとプロセス再起動
PPTX
Keycloakのステップアップ認証について
PDF
ドメイン駆動設計 失敗したことと成功したこと
PDF
MQTTとAMQPと.NET
PDF
Getting Started GraalVM / GraalVM超入門 #jjug_ccc #ccc_c2
PPTX
Dockerからcontainerdへの移行
PDF
MapReduce/YARNの仕組みを知る
PDF
ソーシャルゲームのためのデータベース設計
Swagger ではない OpenAPI Specification 3.0 による API サーバー開発
NGINXをBFF (Backend for Frontend)として利用した話
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
カスタムプランと汎用プラン
組織にテストを書く文化を根付かせる戦略と戦術
PostgreSQL13でのレプリケーション関連の改善について(第14回PostgreSQLアンカンファレンス@オンライン)
FIWARE勉強会 20190913
Gocon2017:Goのロギング周りの考察
爆速クエリエンジン”Presto”を使いたくなる話
オススメの標準・準標準パッケージ20選
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
あなたの知らないPostgreSQL監視の世界
initとプロセス再起動
Keycloakのステップアップ認証について
ドメイン駆動設計 失敗したことと成功したこと
MQTTとAMQPと.NET
Getting Started GraalVM / GraalVM超入門 #jjug_ccc #ccc_c2
Dockerからcontainerdへの移行
MapReduce/YARNの仕組みを知る
ソーシャルゲームのためのデータベース設計
Ad

Similar to Django REST Framework における API 実装プラクティス | PyCon JP 2018 (20)

PDF
Arquitetura Java em 2007 (Java Architecture in 2007)
PPT
Enterprise AIR Development for JavaScript Developers
PPTX
Open Source Ajax Solution @OSDC.tw 2009
PDF
GDG Cloud Taipei meetup #50 - Build go kit microservices at kubernetes with ...
PDF
Alexander Mostovenko "'Devide at impera' with GraphQL and SSR"
PDF
Metrics-Driven Engineering
PDF
Presto anatomy
PDF
파이썬 웹 서비스 구성과 이해
PDF
[245] presto 내부구조 파헤치기
PDF
Serverless - Developers.IO 2019
PDF
Piwik elasticsearch kibana at OSC Tokyo 2016 Spring
PDF
Front End Development for Back End Java Developers - NYJavaSIG 2019
PDF
DEF CON 27 - workshop - JOSH REYNOLDS - from ek to dek slides
PPTX
Best Practices in Handling Performance Issues
PDF
Bringing JAMStack to the Enterprise
PDF
State of Akka 2017 - The best is yet to come
PDF
Edge trends mizuno-template
PDF
Analyzing the Performance of Mobile Web
PDF
PDF
비트코인 블록체인에 데이터 히치하이킹
Arquitetura Java em 2007 (Java Architecture in 2007)
Enterprise AIR Development for JavaScript Developers
Open Source Ajax Solution @OSDC.tw 2009
GDG Cloud Taipei meetup #50 - Build go kit microservices at kubernetes with ...
Alexander Mostovenko "'Devide at impera' with GraphQL and SSR"
Metrics-Driven Engineering
Presto anatomy
파이썬 웹 서비스 구성과 이해
[245] presto 내부구조 파헤치기
Serverless - Developers.IO 2019
Piwik elasticsearch kibana at OSC Tokyo 2016 Spring
Front End Development for Back End Java Developers - NYJavaSIG 2019
DEF CON 27 - workshop - JOSH REYNOLDS - from ek to dek slides
Best Practices in Handling Performance Issues
Bringing JAMStack to the Enterprise
State of Akka 2017 - The best is yet to come
Edge trends mizuno-template
Analyzing the Performance of Mobile Web
비트코인 블록체인에 데이터 히치하이킹
Ad

More from Masashi Shibata (20)

PDF
MLOps Case Studies: Building fast, scalable, and high-accuracy ML systems at ...
PDF
実践Djangoの読み方 - みんなのPython勉強会 #72
PDF
CMA-ESサンプラーによるハイパーパラメータ最適化 at Optuna Meetup #1
PDF
サイバーエージェントにおけるMLOpsに関する取り組み at PyDataTokyo 23
PDF
Implementing sobol's quasirandom sequence generator
PDF
DARTS: Differentiable Architecture Search at 社内論文読み会
PDF
Goptuna Distributed Bayesian Optimization Framework at Go Conference 2019 Autumn
PDF
PythonとAutoML at PyConJP 2019
PDF
Djangoアプリのデプロイに関するプラクティス / Deploy django application
PDF
Django の認証処理実装パターン / Django Authentication Patterns
PDF
RTMPのはなし - RTMP1.0の仕様とコンセプト / Concepts and Specification of RTMP
PDF
システムコールトレーサーの動作原理と実装 (Writing system call tracer for Linux/x86)
PDF
Golangにおける端末制御 リッチなターミナルUIの実現方法
PDF
How to develop a rich terminal UI application
PDF
Introduction of Feedy
PDF
Webフレームワークを作ってる話 #osakapy
PDF
Pythonのすすめ
PDF
pandasによるデータ加工時の注意点やライブラリの話
PDF
Pythonistaのためのデータ分析入門 - C4K Meetup #3
PDF
テスト駆動開発入門 - C4K Meetup#2
MLOps Case Studies: Building fast, scalable, and high-accuracy ML systems at ...
実践Djangoの読み方 - みんなのPython勉強会 #72
CMA-ESサンプラーによるハイパーパラメータ最適化 at Optuna Meetup #1
サイバーエージェントにおけるMLOpsに関する取り組み at PyDataTokyo 23
Implementing sobol's quasirandom sequence generator
DARTS: Differentiable Architecture Search at 社内論文読み会
Goptuna Distributed Bayesian Optimization Framework at Go Conference 2019 Autumn
PythonとAutoML at PyConJP 2019
Djangoアプリのデプロイに関するプラクティス / Deploy django application
Django の認証処理実装パターン / Django Authentication Patterns
RTMPのはなし - RTMP1.0の仕様とコンセプト / Concepts and Specification of RTMP
システムコールトレーサーの動作原理と実装 (Writing system call tracer for Linux/x86)
Golangにおける端末制御 リッチなターミナルUIの実現方法
How to develop a rich terminal UI application
Introduction of Feedy
Webフレームワークを作ってる話 #osakapy
Pythonのすすめ
pandasによるデータ加工時の注意点やライブラリの話
Pythonistaのためのデータ分析入門 - C4K Meetup #3
テスト駆動開発入門 - C4K Meetup#2

Recently uploaded (20)

PPTX
Engineering Ethics, Safety and Environment [Autosaved] (1).pptx
PPTX
additive manufacturing of ss316l using mig welding
PDF
Embodied AI: Ushering in the Next Era of Intelligent Systems
PPT
CRASH COURSE IN ALTERNATIVE PLUMBING CLASS
PDF
Mohammad Mahdi Farshadian CV - Prospective PhD Student 2026
PDF
July 2025 - Top 10 Read Articles in International Journal of Software Enginee...
PPTX
Geodesy 1.pptx...............................................
PDF
R24 SURVEYING LAB MANUAL for civil enggi
PDF
SM_6th-Sem__Cse_Internet-of-Things.pdf IOT
PDF
Digital Logic Computer Design lecture notes
PPTX
bas. eng. economics group 4 presentation 1.pptx
PDF
PPT on Performance Review to get promotions
PPTX
CARTOGRAPHY AND GEOINFORMATION VISUALIZATION chapter1 NPTE (2).pptx
PDF
composite construction of structures.pdf
PPTX
Construction Project Organization Group 2.pptx
PPTX
CYBER-CRIMES AND SECURITY A guide to understanding
PPTX
MCN 401 KTU-2019-PPE KITS-MODULE 2.pptx
PPTX
Infosys Presentation by1.Riyan Bagwan 2.Samadhan Naiknavare 3.Gaurav Shinde 4...
PDF
Enhancing Cyber Defense Against Zero-Day Attacks using Ensemble Neural Networks
PDF
BMEC211 - INTRODUCTION TO MECHATRONICS-1.pdf
Engineering Ethics, Safety and Environment [Autosaved] (1).pptx
additive manufacturing of ss316l using mig welding
Embodied AI: Ushering in the Next Era of Intelligent Systems
CRASH COURSE IN ALTERNATIVE PLUMBING CLASS
Mohammad Mahdi Farshadian CV - Prospective PhD Student 2026
July 2025 - Top 10 Read Articles in International Journal of Software Enginee...
Geodesy 1.pptx...............................................
R24 SURVEYING LAB MANUAL for civil enggi
SM_6th-Sem__Cse_Internet-of-Things.pdf IOT
Digital Logic Computer Design lecture notes
bas. eng. economics group 4 presentation 1.pptx
PPT on Performance Review to get promotions
CARTOGRAPHY AND GEOINFORMATION VISUALIZATION chapter1 NPTE (2).pptx
composite construction of structures.pdf
Construction Project Organization Group 2.pptx
CYBER-CRIMES AND SECURITY A guide to understanding
MCN 401 KTU-2019-PPE KITS-MODULE 2.pptx
Infosys Presentation by1.Riyan Bagwan 2.Samadhan Naiknavare 3.Gaurav Shinde 4...
Enhancing Cyber Defense Against Zero-Day Attacks using Ensemble Neural Networks
BMEC211 - INTRODUCTION TO MECHATRONICS-1.pdf

Django REST Framework における API 実装プラクティス | PyCon JP 2018