热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

开发简谈前后端分离应用模式

前后端分离介绍

1、web 开发方式:前后端分离

在前后端分离的应用模式中,后端仅返回前端所需的数据,不再渲染 HTML 页面,不再控制前端的页面的跳转。

至于前端用户看到什么效果,从后端请求的数据如何加载到前端中,这些都是由前端自己决定,网页有网页的处理方式,App 有 App 的处理方式,但无论哪种前端,所需的数据基本相同,后端仅需开发一套逻辑对外提供数据即可。

在前后端分离的应用模式中,前端与后端的耦合度相对较低。

在前后端分离的应用模式中,我们通常将后端开发的每个视图都称为一个接口或者 API ,前端通过访问接口来对数据进行增删改查,后端返回给前端的数据格式主要为:json 格式。

以下为数据交互图:

开发 - 简谈前后端分离应用模式

2、API接口:Restful 风格

2.1、规范原则:

  • 接口返回数据即显示:前端仅做渲染逻辑处理;
  • 渲染逻辑禁止跨多个接口调用;
  • 前端只需关注交互、渲染逻辑,要尽量避免逻辑处理的出现;
  • 请求响应传输数据格式:JSON, json格式应尽量简单轻量,避免多级 json 的出现;

2.2、HTTP URL:

格式规范:

  • URL 中尽量使用小写字母;
  • URL 中不适用连字符;
  • URL 中不要包含文件(脚本)的扩展名;
  • URL 中请求单个资源需要用单数命名;
  • URL 中请求集合或者多个资源使用复数命名;
  • CRUD的操作不要体现在URI中,HTTP协议中的操作符已经对CRUD做了映射;

HTTP URI模板如下:

http://{root-url}/api/{api-version}/{service-name}/{resource-name}/{action}

  1. service-name:必须,表示服务名称,如:flow、auth
  2. resource-name: 必须,请求的资源名称,如:staff、role
  3. action: 选填,对于某个资源的操作不是CRUD,此处填入进行的操作。如:binding、check

2.3、HTTP Method:

http方法应当支持下面几种方法:

  • GET 获取某个资源 ;

  • POST 新增某个资源,请求的格式应是json;

  • PUT 修改某个资源,请求的格式应是json

    (PUT方法可用来更新一个资源的全部属性,使用时传递所有属性的值,即使有的值没有改变)

  • DELETE 删除某个资源;

  • PATCH:更新(Update),通常是部分更新;

2.4、接口示例:

接口名称:消息平台接收EDIT POOL的Opt状态查询接口

接口描述:该接口由消息平台提供,查询mds用户的OPT授权状态

请求URL :

http://localhost:9099/editpool/mdsstatuquery

请求方式:

POST

请求参数:

参数名称 参数含义 参数类型 备注
userId 用户ID String 用户的唯一id值,能够找到用户,如:“abc”
serviceOrder 订单编号 String 如:SIFG0892801903011111

请求参数示例:

{

“userId”: “abc”,

“serviceOrder”:“SIFG0892801903011111”

}

返回参数:

参数名称 参数含义 参数类型 备注
code 调用的结果代码 int 调用成功,返回000000;调用失败,根据错误类型返回预定义的error code
status 调用的结果,成功与否 String success/failure
msg 如果调用失败,失败的原因 String
data payload Json json格式

data:

参数名称 参数含义 参数类型 备注
notificationType 查询给出的状态 String

返回参数示例:

{

“data”: {

“notificationType”: “Opt-in”

}

“code”: “000000”,

“status”: “success”,

“msg”: “”

}

2.5、接口设计建议:

安全性:

外部接口应考虑采用HTTPS协议,以确保交互数据的传输安全。涉及到敏感数据时,应使用POST请求,而不是GET请求。

接口的版本:

根据业务的实际情况,当一个接口有不同版本的实现时,在URL中使用v{x}表明接口的版本信息。

Swagger:

Swagger可以方便的管理rest API的文档。


推荐阅读
  • .NetCoreWebApi生成Swagger接口文档的使用方法
    本文介绍了使用.NetCoreWebApi生成Swagger接口文档的方法,并详细说明了Swagger的定义和功能。通过使用Swagger,可以实现接口和服务的可视化,方便测试人员进行接口测试。同时,还提供了Github链接和具体的步骤,包括创建WebApi工程、引入swagger的包、配置XML文档文件和跨域处理。通过本文,读者可以了解到如何使用Swagger生成接口文档,并加深对Swagger的理解。 ... [详细]
  • 这是orginally答复Elias的内容:为什么不需要E5风险控制我们一致认为E4和3.x并不是100%兼容的,E4只是提供了一个兼容层用于运行3.x的插件,这其实并不完全符合E4的设计理 ... [详细]
  • REST webService 用jquery ajax post方式提交 json 格式参数 webService 拿不到值 ... [详细]
  • delphi控件大全
    本文章已收录于:delphi控件查询:http:www.torry.nethttp:www.jrsoftware.orgTb97最有名的工具条(ToolBar) ... [详细]
  • ajax 跨域webapi 最简单的demo(只介绍Get)
    这几天遇到一个nodejs的项目,使用VSCode开发,需要连接数据库的,但是用nodejs连接数据库比较繁琐,需要安装很多 ... [详细]
  • 在写每日签到的时候,我居然使用的是本地时间被项目经理笑哭了。。。。,如果你在写单机游戏,没有游戏服务器,但又不想使用本地时间,就可以采用下面方法.方法总结:     1.使用 ... [详细]
  • Linux下安装grafana并且添加influxdb监控的方法
    这篇文章主要介绍了Linux下安装grafana并且添加influxdb监控的方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值, ... [详细]
  • 淘宝http:ip.taobao.cominstructions.php接口说明请求接口(GET):servicegetIpInfo.ph ... [详细]
  • 让SQL Server 2008默认使用Report Builder 2.0做报表设计器
    由于SQLServer2008比ReportBuilder2.0先发布,所以默认情况下,在SSRS2008中的报表管理器中单击“报表生成器”,打开的是ReportBuilder1.0版本 ... [详细]
  • Android开发之Notification(实现消息弹窗、提示音以及点击事件)
    文章目录通知管理器通知渠道通知发送通知更多效果添加点击事件取消消息通知管理器通知管理器(NotificationManager)类是一个通知管理器&# ... [详细]
  • Mysql安装和初步使用
    2019独角兽企业重金招聘Python工程师标准一、安装1、下载及安装:官网:https:downloads.mysql.comarchivesc ... [详细]
  • 结束jquery时间不长,写代码感觉很生,而且敢接写起来很费劲做点简单的总结。首先主要要先引入.juery.js文件第二一些js插件文件也要在jquer ... [详细]
  • 【从零到壹】Koa 从理解到实现
    【从零到壹】Koa从理解到实现-【点击查看文中的相关源码】根据官网的介绍,Koa是一个新的Web框架,致力于成为Web应用和API开发领域中的一个更小、更富有表现力和更健壮的基石。 ... [详细]
  • 本文介绍了OpenStack的逻辑概念以及其构成简介,包括了软件开源项目、基础设施资源管理平台、三大核心组件等内容。同时还介绍了Horizon(UI模块)等相关信息。 ... [详细]
  • Hello.js 是一个用于连接OAuth2服务的JavascriptRESTFULAPI库,如Go ... [详细]
author-avatar
fishdenise_496
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有