🔥TIL#9. RESTful API
Today I learned Restful APIとは? query parameter path parameter 注意事項 1. Restful API
API伝送されるリソースはURIとして表され、そのリソースに対する意図はHTTPメソッドとして定義される.
2. query parameter
GETメソッドに対応するurlのフィルタリングとページング結果を受信する場合は、を使用します.主に無限スクロール画面で使用されます.
3. path parameter
1つのリソースのGET、PATCH(update)、およびDELETEメソッドで使用されるURL.
4.注意事項 urlは、リソースを基準にする必要があります. の方法があり、動詞を使わない.(悪い例./get places)
API伝送されるリソースはURIとして表され、そのリソースに対する意図はHTTPメソッドとして定義される.
2. query parameter
GETメソッドに対応するurlのフィルタリングとページング結果を受信する場合は、を使用します.主に無限スクロール画面で使用されます.
GET http://localhost:8000/places?id=1®ion=서울 # filtering
GET http://localhost:8000/places?offset=0&limit=100 # paging
django viewでは、次のように処理されます.class PlacesView():
def get(self, request):
id = request.GET.get(id, None)
region = request.GET.get(region, None)
offset = request.GET.get(offset, None)
limit = request.GET.get(limit, None)
価値があると判断したらrequest.GET["id"]方式も利用可能です.3. path parameter
1つのリソースのGET、PATCH(update)、およびDELETEメソッドで使用されるURL.
http://localhost:8000/place/places/1
http://localhost:8000/place/places/원룸
django viewでは、次のように処理されます.from django.urls import path
from . import views
urlpatterns = [
path('/places/<int:place_id>', views.GetDetailPlaceView),
path('/places/<str:category>', views.GetPlaceWithCategoryView),
]
これに対してViewsで扱うコードを以下に示す.class GetDetailPlaceView():
def get(self, request, place_id):
place = Place.objects.filter(id=place_id)
return JsonResponse({"place":place.values()}, status=200)
class GetPlaceWithCategoryView():
def get(self, request, category):
categories = Category.objects.prefetch_related('place_set').all()
places = [category.place_set.values() for category in categories]
return JsonResponse({"place":places}, status=200)
url parameter方式を使用する場合は、get、postメソッドのパラメータにurls宣言の変数名を追加するだけです.4.注意事項
Reference
この問題について(🔥TIL#9. RESTful API), 我々は、より多くの情報をここで見つけました https://velog.io/@jinybear/TIL9-querystring-url-parameterテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol