4
我正在編寫我的第一個REST API(使用django-rest-framework)。選項中的Django-rest-framework文檔API
我添加了URL參數來過濾結果。我的理解是,這些參數的文檔屬於OPTIONS動詞。我的代碼:
class SuburbViewSet(viewsets.ReadOnlyModelViewSet):
"""
Retrieves the suburbs (20 per page).
GET and OPTIONS allowed.
"""
model = Suburb
serializer_class = SuburbSerializer
def get_queryset(self):
"""
Can filter by region_id, ...
- using query parameters in the URL.
"""
queryset = Suburb.objects.all()
region_id = self.request.QUERY_PARAMS.get('region_id', None)
if region_id is not None:
queryset = queryset.filter(region_id=region_id)
return queryset
def metadata(self, request):
ret = super(SuburbViewSet, self).metadata(request)
ret['parameters'] = {
"page": {
"type": "integer",
"description": "The page number",
"required": False
},
"region_id": {
"type": "integer",
"description": "The region ID to filter the results",
"required": False
}
}
return ret
這是最好的/只有REST的方式去解釋什麼參數是在選項?
關於django-rest-framework,我已經擴展了元數據(自我,請求),這感覺hacky。我錯過了一些內置的方式來設置參數描述?
謝謝!
謝謝,但我仍然不確定GET參數。我看了上面教程中的例子。描述從課堂中檢索,所以我會改變它。我也在框架代碼中發現它:ret ['description'] = get_view_description(self .__ class__)。然而,我不知道如何做的GET參數 - 請參閱我的代碼(region_id)。 –
我使用可瀏覽的API(這是很棒的BTW :))。在你所說的例子中,行動中沒有「獲得」,是由設計嗎? –