首页 > 其他分享 >Restful 的简单应用

Restful 的简单应用

时间:2023-08-09 11:45:27浏览次数:28  
标签:返回 数据 --- json 应用 简单 格式 序列化 Restful

Restful 是一种开发理念,是一种设计风格而不是标准,是Reprentational State Transfer 的缩写,全称为具象状态传输

每个URL 代表一种资源

  json 格式数据

  text 文本

  图片、视频等

客户端和服务器之间,传递这种资源的某种表现形式

  通过请求头中 Content-Type 来指明传给服务端的参数类型

  通过请求头中 Accept 来指明希望接受服务端的数据类型

客户端通过HTTP 动词,指明对服务端资源要进行的操作

  get:从服务器获取资源(一项或多项)

  post:从服务器新建一个资源

  put:在服务器更新资源

  delete:从服务器中删除资源

  状态码:

    200:服务器成功返回用户请求的数据

    201:用户新建或者修改数据成功

    204:用户删除数据成功

    400:用户请求有误

    401:表示用户没权限

    404:用户请求路径不存在

    500:服务器发生错误

  

    

 

常用的设计规则

  URL:命名尽量用名词复数形式,往往与数据库的表名对应

  过滤条件:数据量多时,需要过滤返回前端

       ~~:?limit=10:指定返回记录的数量

      ~~:?offset=10:指定返回记录的开始位置

      ~~:?page=2&size=10:指定第几页和每页的数据条数

      ~~:?sort=name:指定返回记录按哪个属性排序,以及排序顺序

 

域名:尽量使用专用的域名

 

创建一个接口的步骤

  校验用户的数据

  将请求的数据(如json格式)转换为模型类对象,从前端获取json 格式的数据,转化成Python 的类型,为了严谨性,这里需要做各种复杂的检验,如是否为json,传递的项目数据是否符合要求,有些必传参数是否携带等

    反序列化

      将其它格式(json/xml 等)转换为程序中的数据类型

      将json 格式的字符串转换为 Django 中的模型类对象

  操作数据库

  将模型类对象转换为响应的数据(如 json 格式)

    序列化

      将程序中的数据类型转换为其它格式(json/xml 等)

      例如将Django 中的模型类对象转换为 json 字符串

  

数据增删改查流程

  增:校验请求参数 ---> 反序列化 ---> 保存数据 ---> 将保存的对象序列化并返回

  删:判断要删除的数据是否存在 ---> 执行数据库删除

  改:判断要修改的数据是否存在 ---> 检验请求参数 ---> 反序列化 ---> 保存数据 ---> 将保存的对象序列化返回

  查:查询数据库 ---> 将数据序列化并返回

 

 

 

  2、向数据库中新增项目

    

 

  3、将模型类对象转化为字典,然后返回

    

 

获取一个项目详情的例子:

  1、校验前端传递的pk (项目ID)值,类型是否正确(正整数),在数据库中是否存在等

  2、获取指定pk值的项目

  3、将模型类对象转化为字典

  

 

标签:返回,数据,---,json,应用,简单,格式,序列化,Restful
From: https://www.cnblogs.com/lili37/p/17616431.html

相关文章

  • H5简单搭页面布局
    效果图简单总结下header:头部块标签section:中间快标签footer:底部块标签nav:通常在section下左边main:通常在section下中间部分(ie不兼容)aside:通常在section下右边article:表示独立部分和上下文无关通常在main部分 具体的结构为<header>header</header><se......
  • spring多数据源动态切换的实现原理及读写分离的应用
    简介AbstractRoutingDataSource是Spring框架中的一个抽象类,可以实现多数据源的动态切换和路由,以满足复杂的业务需求和提高系统的性能、可扩展性、灵活性。应用场景多租户支持:对于多租户的应用,根据当前租户来选择其对应的数据源,实现租户级别的隔离和数据存储。分库分表:为了提......
  • 红帽认证RedHat-RHCSA shell的基本应用用户和组管理网络配置和防火墙管理笔记汇总
    shell命令概述Shell作用:命令解释器介于操作系统内核与用户之间,负责解释命令行获得命令帮助内部命令help命令的“--help”选项使用man命令阅读手册页命令行编辑的几个辅助操作Tab键:自动补齐反斜杠“\”:强制换行快捷键Ctrl+U:清空至行首快捷键Ctrl+K:清空至行尾快捷键Ctr......
  • 超链接唤起应用
    使用场景这种一般用于开发手机APP或网站时可能用到,比如投诉反馈功能会加一个联系我们的电话. 唤起应用<!--唤起电话--><ahref="tel:13997144945">拨打电话</a><!--唤起发送邮件--><ahref="mailto:[email protected]">发送邮件</a><!--唤起......
  • dbt modules 宏简单说明
    dbtmodules宏提供了让dbt访问python包的能力,处理上基于了jinja的上下问处理,但是目前官方没有完整暴露此方法核心还是因为安全问题,只提供了一些时间、正则、迭代处理的,实际使用上基于了python模块的动态加载(getattr)modules宏的使用参考 {%setnow=modules.da......
  • Spring-1-深入理解Spring XML中的依赖注入(DI):简化Java应用程序开发
    学习目标前两篇文章我们介绍了什么是Spring,以及Spring的一些核心概念,并且快速快发一个Spring项目,以及详细讲解IOC,今天详细介绍一些DI(依赖注入)能够配置setter方式注入属性值能够配置构造方式注入属性值能够理解什么是自动装配一、依赖注入(DI配置)1依赖注入方式【重点】......
  • Spring-2-深入理解Spring 注解依赖注入(DI):简化Java应用程序开发
    今日目标掌握纯注解开发依赖注入(DI)模式学习使用纯注解进行第三方Bean注入1注解开发依赖注入(DI)【重点】问题导入思考:如何使用注解方式将Bean对象注入到类中1.1使用@Autowired注解开启自动装配模式(按类型)@ServicepublicclassStudentServiceImplimplementsStuden......
  • 剑指 Offer 28. 对称的二叉树(简单)
    题目:classSolution{public:booltraversal(TreeNode*left,TreeNode*right){//递归判断左右两个**镜像**节点if(left==nullptr&&right!=nullptr)returnfalse;elseif(left!=nullptr&&right==nullptr)returnfalse;el......
  • Python基础day62 DjangoAjax的传输应用
    前后端数据传输的编码格式(contentType)前后端数据传输的请求方式有两种:get、post我们只研究post请求的编码格式三种编码格式urlencodedform-datajson发送post请求的方式form表单Ajaxpostman(第三方工具,需要下载) form表单发送post请求的时候数据的编码格式请求头conten......
  • Sequelize的简单连接和使用
    Sequelize是一个基于Node.js的ORM框架特点:1、支持多种数据库:Sequelize支持多种关系型数据库,包括MySQL、PostgreSQL、SQLite和MSSQL等,适用于需要在不同数据库间切换或者兼容多种数据库的项目。2、强大的查询功能:Sequelize具有丰富的查询功能,支持复杂的查询条件、关联查询......