Q-Logo 我的学习笔记分享

Entries for tag "restful"

在Wagtail 网站中为自定义内容类型创建 API 端点路径

在Wagtail网站中提供 RESTful API 服务 一文中,介绍了怎样为Wagtail 内置的页面、图片、文档 等类型的内容配置API 端点路径,其中也提到,如果要增加新的内容类型,可以继承路径基类 wagtail.api.v2.views.BaseAPIViewSet ,本文以类型为BlogCategory 的Snippet 为例,介绍怎样为其创建API 路径端点。创建好之后,API 响应如下:

{
"meta": {
"total_count": 2
},
"items": [
{
"id": 1,
"meta": {
"type": "blog.BlogCategory",
"detail_url": "http://api.example.com/api/v2/categories/1/",
},
"name": "Test",
"slug": "category-test-1"
},
{
"id": 2,
"meta": {
"type": "blog.BlogCategory",
"detail_url": "http://api.example.com/api/v2/categories/2/",
},
"name": "Hello",
"slug": "category-test-2"
}
]
}

在Wagtail网站中提供 RESTful API 服务

Wagtail 是一个基于Django 的内容管理系统(CMS)。它提供了友好的管理页面,可以方便地管理各种内容。它还基于Django REST Framwork 提供了专用的Wagtail API 模块(wagtail.api.v2 ),可以很方便地将原始内容以 JSON API 的方式开放给客户端使用。使用Wagtail API,只需要经过简单配置,就可以提供开放的API,非常适合用于开发前后端分离的项目。API 返回的响应示例如下:

{
"meta": {
"total_count": 10
},
"items": [
{
"id": 1,
"meta": {
"type": "blog.BlogPage",
"detail_url": "http://api.example.com/api/v2/pages/1/",
"html_url": "http://www.example.com/blog/my-blog-post/",
"slug": "my-blog-post",
"first_published_at": "2016-08-30T16:52:00Z"
},
"title": "Test blog post",
"published_date": "2016-08-30",
"authors": [
{
"id": 1,
"meta": {
"type": "blog.BlogPageAuthor",
},
"name": "Karl Hobley"
}
]
},

...
]
}