上一篇我们构造了获取所有图书列表的 api,现在我们构造一个利用书的 id 来获取某本书的信息的 api。
1.编辑 api.py
编写一个 one_book 方法,来通过 id 找到某本书,并构建 相应的 api:
@api_view(['GET', 'POST'])
# id 参数来自url
def one_book(request, id):
# 通过 id 找到对应的书目
one_book = Book.objects.get(id=id)
serializer = BookSerializer(one_book)
return Response(serializer.data)
2.分配 url
在 url.py 分配一个 url 用作某本书的 api:
……
# 引入刚创建的 one_book 方法
from library.api import book, revise_book, one_book
urlpatterns = [
url(r'^admin/', admin.site.urls),
……
url(r'^api/book/$', book), # 全部书目的api
url(r'^api/book/(?P<id>\d+)$', one_book), # 某本书的api,id作为参数
……
]
3. 测试
打开: http://127.0.0.1:8000/api/book/1 ,可以看到第一本书的 api:
再测试:http://127.0.0.1:8000/api/book/2 ,可以看到第二本书的信息: