首页
学习
活动
专区
圈层
工具
发布

我是如何根据豆瓣api来理解Restful API设计的

REST本身跟http无关,但是目前http是与它相关的唯一实例。REST有着优雅、简洁的特性,本文是根据豆瓣api来谈谈自己对restful的一些理解。.../v2/book/1220562 表述了豆瓣api,version2下的图书仓库下的编号为1220562的图书。...把动作转换成资源 比如,上述接口中,用户收藏某本书对外暴露的接口是”/v2/book/:id/collection”,收藏动作通过post方法来展现,而不直接写着api中,collection “收藏...如果对外公开api,api文档的质量直接反应了一个公司的技术水平,甚至一个公司的文化气质。...8.参考资料 本文参考了以下的资料: 豆瓣api 理解restful架构 restful introduction 跟着github学习restful api设计 REST接口设计规范 restful

2K50

用django写接口(入门篇)

作者:Kuky_xs 博客:https://www.jianshu.com/u/9fcd71535294 0 码仔有话说 《django入门:环境及项目搭建》 《django入门:数据模型》 《django...django 项目,然后创建一个 app,例如 blog_api (不会创建请参考 django 部分) python manage.py startapp blog_api 将新建 app 的信息加入到已有项目中...view 函数 rest_framework 类似 django,需要通过 view 来展示接口返回的数据信息,在 views.py 中创建视图函数 from django.views.decorators.csrf...r'^api/', include('blog_api.urls', namespace='api')), ] # blog_api 下的 urls from django.conf.urls import...方法来进行某篇具体的 post 的接口操作 from django.shortcuts import get_object_or_404 from django.views.decorators.csrf

3.5K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    全面掌握Django开发RESTful API:从基础到高级的实战指南

    全面掌握Django开发RESTful API:从基础到高级的实战指南在现代Web开发中,RESTful API(Representational State Transfer)已成为构建后端服务的标准模式...本文将从基础到高级,逐步讲解如何使用Django开发RESTful API,并结合代码实例来帮助理解。一、基础准备1. 创建Django项目首先,我们需要创建一个Django项目并安装必要的依赖。...'rest_framework', 'api',]2. 创建模型为了演示API的基本功能,我们将创建一个简单的模型——Book,表示书籍的基本信息。...序列化数据Django REST framework提供了强大的序列化工具来将模型数据转换为JSON格式。在API中,我们需要创建一个序列化器类。...六、部署Django RESTful API当API开发完成后,部署是使其对外可用的关键步骤。我们将简要介绍如何将Django RESTful API部署到生产环境。1.

    63520

    使用Django、RestFul API和Bootstrap实现可折叠的多级菜单功能

    本文将详细介绍如何使用Django、RestFul API和Bootstrap实现一个可折叠的多级菜单功能,并在菜单末端节点上添加复选框,点击按钮时获取这些节点的ID并查询其内容。...一、环境准备在开始之前,请确保已经安装并配置好以下环境:Python 3.xDjangoDjango Rest FrameworkBootstrap 4.x二、后端实现首先,我们需要在Django中创建一个简单的菜单模型...、RestFul API和Bootstrap的多级菜单功能,并且在菜单末端节点上添加了复选框,点击按钮时可以获取选中的节点ID,并查询其内容。...关键步骤总结:后端实现:创建Django项目和应用。定义菜单模型,并创建序列化器。创建视图和路由,处理菜单数据和根据ID查询内容的请求。前端实现:引入必要的CSS和JavaScript文件。...实现更多复杂的查询条件和过滤功能。优化前端界面的用户体验。通过这些扩展,你可以根据具体需求来调整和优化你的项目,构建一个功能更强大、用户体验更佳的多级菜单系统。

    90800

    用django写接口(优化篇)

    作者:Kuky_xs 博客:https://www.jianshu.com/u/9fcd71535294 前言 系列文章: 《django入门:环境及项目搭建》 《django入门:数据模型》 《django...入门:视图及模版》 《django入门:Admin管理系统及表单》 《django入门:通用视图类重构视图》 在《用django写接口(入门篇)》提到这篇会讲 views 的代码优化,在这之前,我们先适当了解下...参考 django 表单部分) Response 是一种 TemplateResponse 采用未呈现的内容,通过内容协商来确定正确的内容类型以返回给客户端,用法直接 return Response...在结束文章的最后,记录自己写的时候遇到的一个坑,当更新 ManyToMany 字段的时候,我们需要重新写 post 方法,直接传 id 是不能更新的,直接传 id 是不能更新的,直接传 id 是不能更新的...# 假设我们的 post 有一个 ManyToMany 字段 tags class PostDetailView(APIView): # 更新的时候,需要约定好 ManyToMany

    2.3K20

    跟着官方文档学Python——Django Rest framework

    如果我们把前端页面看作是一种用于展示的客户端,那么 API 就是为客户端提供数据、操作数据的接口。...目前市面上大部分公司开发人员使用的接口服务架构主要有:restful、rpc、soap。 什么是RESTful API? 将所有的事物抽象为资源,资源对应唯一的标识。...RESTful风格的API即为RESTful API。通过GET/ POST/ PUT/ DELETE来获取/新建/更新/删除资源。一般使用JSON格式返回数据。...大多数web框架都有相应的插件支持RESTful API。...两者都是数据转换格式,比如我们在django中获取到的数据默认是模型对象,但是模型对象数据无法直接提供给前端或别的平台使用,所以需要把数据进行序列化,变成字符串或者json数据,提供给别人,这是序列化。

    2.9K10

    再谈《Django 限制访问频率》

    之前提到使用ratelimit来限制访问频率,我的目的是根据用户来限制访问频率,但是实际上通过下面的代码并没有达到效果,如果用多个浏览器进行同时刷新,会存在跳过限制的情况 @ratelimit(key...='user', rate='1/8s', block=True, method=('POST')) 本来是不想重复造轮子的,但是由于这个轮子不大好用,于是只好重新造一个,基于redis可以使用下面的代码来实现...(['POST', 'GET']) @redis_ratelimit(method='api_test', block=True, ttl=10) @csrf_exempt def api_test(request...): """ 测试接口 http://192.168.1.195:8006/rest-api/battle/api-test/ :return: 普通数据测试...序列化 Django admin Foreignkey ManyToMany list_display展示 django 主动抛出 403 异常 ngix+uwsgi+django 以及阿里云rds

    1.2K20

    Orm之中介模型

    什么是中介模型 中介模型针对的是ManyToMany(多对多)的时候第三张表的问题, 中介模型其实指的就是我们不通过Django创建第三张表,如果自己不创建第三张表,而是由django给我们创建,那就不存在你中介模型...中介模型示例 普通的ManyToMany示例 class Book(models.Model): title = models.CharField(max_length=32) authors...models.ManyToManyField(to='Author') class Author(models.Model): name = models.CharField(max_length=32) 这时候Django...图中可以看出,Django创建ForeignKey的时候会在字段后自动添加'_id',所以,我们在写第三张表字段的时候就不用加_id了,如下: class Book(models.Model):...Django自建表的区别 1、中介模型的第三张表是自己创建的,所以可以自己任意添加额外的字段,而Django自创建的第三张表的字段是固定的 2、中介模型没有add,set  , remove,clear

    91150

    慕课网Flask构建可扩展的RESTful API-6. 模型对象的序列化

    image.png keys 方法的目的就是为了拿到字典里所有的键,至于说这些键有那么,完全有我们自己来定义。keys 返回的必须是一个元组或者列表来声明要序列化的键。...viewmodel对于API来说,特别是内部开发来说非常有意义 viewmodel是为了我们的视图层,提供个性化的试图模型。...原始模型是根据数据库来生成的,他的格式是一定的,但是我们在视图层中或者API的返回中,要根据业务去具体的个性化一个个属性的 格式,这就必然存在一个由原始模型向视图模型转换的过程,这个过程最适合的是在View_model...我们在视图层写转换的代码,一来会污染视图层的代码,二来会难以复用 并且有的试图模型可能会比较复杂,设计到多个原始模型,这个代码必定会比较复杂,写在视图函数中就会非常不合适 对于完全严格意义上的RESTFul...,viewmodel的意义并不大,因为完全资源意义的RESTFul是不考虑业务逻辑的

    1.2K20

    django 1.8 官方文档翻译: 2-5-6 多数据库

    /manage.py migrate --database=users 如果你不想每个应用都被同步到同一台数据库上,你可以定义一个数据库路由,它实现一个策略来控制特定模型的访问性。...如果myapp中的任何一个模型包含与其它 数据库之外的模型的关联,这个例子将不能工作。跨数据的关联引入引用完整性问题,Django目前还无法处理。...还提供一个API,允许你在你的代码中完全控制数据库的使用。..., **kwargs) 一旦你写好你的模型管理站点的定义,它们就可以使用任何Admin实例来注册: from django.contrib import admin # Specialize the...多数据库上使用原始游标 如果你正在使用多个数据库,你可以使用django.db.connections来获取特定数据库的连接(和游标):django.db.connections是一个类字典对象,它允许你使用别名来获取一个特定的连接

    1.9K20

    DRF框架中的英文单词

    /api/1.0/foo 3. endpoint/'ɛnd,pɔɪnt/终点,我们在RESTful设计风格中也称为路径,表示API的具体网址。...应该是美国人发明的吧,毕竟美国的计算机发展的相当棒。序列化这个定义很很重要,给大家强调一下:在Django中,我们可以简单的理解为将模型类对象转化成字典或字符串的这个过程。...表明该字段是否允许传入None,默认False validators 该字段使用的验证器 error_messages 包含错误编号与错误信息的字典 label 用于HTML展示API页面时,显示的字段名称...help_text 用于HTML展示API页面时,显示的字段帮助提示信息 24. instance/'ɪnstəns/实例,我们下面的这种情况下用到了: Serializer(instance=None...=[about_django]) 上面的about_Django是我们定义的补充验证函数名。

    2K30

    如何在 Django 中同时使用普通视图和 API 视图

    简介在现代的 Web 开发中,应用程序通常不仅提供传统的页面渲染服务,还需要暴露 API 接口以支持前后端的数据交互。Django 提供了强大的视图系统,使得开发者可以轻松地同时处理这两种类型的请求。...准备工作在开始之前,请确保你已经具备以下条件:Python 和 Django 环境已经安装和配置。对 Django 的基本理解,包括项目、应用、模型、视图和路由的概念。...对于 API 开发,了解 RESTful 架构设计的基本原则是有帮助的。3. 设置项目和应用首先,创建一个 Django 项目和一个应用(或使用现有的应用)。...我们将创建几个简单的视图来展示不同的页面。4.1 编写普通视图函数在 myapp1/views.py 中编写普通的视图函数。...配置 API 视图API 视图用于处理 RESTful API 请求和响应。我们将使用 Django REST Framework 来简化 API 视图的创建和管理。

    2K00

    教你 10 分钟构建一套 RESTful API 服务( 下 )

    和 Restless 依赖插件的增强使用场景的 但是,有些小伙伴希望我能写一下 Django 实现 RESTful API 的实现过程 因此本篇将介绍 Django 搭建 RESTful API 的流程...安装依赖 使用 Django 编写 RESTful API 之前,我们需要先在虚拟环境内安装对应的依赖 具体包含: Django:基础 Web 框架 djangorestframework:Django...实现 具体步骤如下: 第 1 步,编写模型,并映射数据库 新建一个类,继承自 django.db.models 中的 Model 对象,新增几个字段,指定数据类型和默认值 # api/restfulapi...() 方法即可 当然,这里也可以使用 django_filters 来过滤数据,来完成一些复杂的查询场景 # api/restfulapi/views.py from rest_framework import...最后 上面就是通过 Django +djangorestframework实现 RESTful API 完整的流程了

    1.8K40

    慕课网Flask构建可扩展的RESTful API-5. Token与HTTPBasic验证 —— 用令牌来管理用户

    5.1 Token 1.Token概述 以下是网站登录和使用API登录的区别 ?...image.png 与网站登录不同的是,网站登录将登录信息写入cookie存储在浏览器,而API只负责生成token发送给客户端,而客户端怎么存储有自己决定。..._password, raw) 返回token的试图函数,这里稍微破坏一下REST的规则,由于登录操作密码安全性较高,使用GET的话会泄漏 @api.route('', methods=['POST']...get_user(): return 'i am gwf' ---- 5.2 HTTPBasicAuth 1.HTTPBasicAuth基本原理 除了自定义发送账号和密码之外,HTTP这种协议本身就有多种规范,来允许我们来传递账号和密码...BasicAuth方式来发送token 我们可以将token作为上面所说的账号account,而密码psd传递空值 ?

    1.5K50
    领券