项目架构

本文详细解析了MVC架构、常见的web开发架构(耦合、半分离、分离)以及RESTful规范的概念、优点和具体实现。涵盖了URI设计、HTTP动词和版本控制,重点介绍了前后端分离的流程和RESTful API的实战应用。
摘要由CSDN通过智能技术生成

一.MVC

项目架构,项目分层,不同的层的职责不同。
M:model,模型(只是数据处理)
业务逻辑处理,更多体现的是数据库的增删改查
V:view:视图(显示)
views文件夹下的文件。完成显示的格式。使用ejs模板,jade模板
C:controller,控制器。(控制的就是某个功能的业务流程)
routers文件夹下的文件。
根据业务流程,调用不同的模块完成对应的功能。

二.web开发中的架构:

1.耦合架构

在这里插入图片描述

2.半分离架构

在这里插入图片描述

web的工作流程:

1、打开web,加载静态资源,如HTML,CSS,JS等;
2、发起一个Ajax请求再到服务端请求数据,同时展示loading;

3、得到JSON格式的数据后再根据逻辑选择模板渲染出DOM字符串;

4、将DOM字符串插入HTML页面中渲染出DOM结构;

3.分离架构

前端渲染:vue脚手架的项目是前后端分离,但是用的是前端的渲染

后端渲染:如果要使用后端渲染,那么就需要使用ejs。许多小童鞋是不是初次听说呀~
在这里插入图片描述

web的工作流程:
1)浏览器请求服务器端的NodeJS;
2)NodeJS再发起HTTP去请求JSP;
3)JSP的API输出JSON给NodeJS;
4)NodeJS收到JSON后再渲染出HTML页面;
5)NodeJS直接将HTML页面发送给浏览器;
这样,浏览器得到的就是普通的HTML页面,而不用再发Ajax去请求服务器了。

三.前后端分离架构的流程和职责
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qATkL86v-1629888693499)(img\1625066719824.png)]

三.restful规范

1.概念:

RESTful (资源数据接口规范) 是目前最流行的 API 设计规范,用于 Web 数据接口的设计。
前端设备层出不穷(手机、平板、桌面电脑、其他专用设备…)。因此,必须有一种统一的机制,方便不同的前端设备与后端进行通信。这导致API构架的流行。RESTful API是目前比较成熟的API设计理论。要搞清楚restful规范,必须先了解REST。REST强调HTTP应当以资源为中心,并且规范了资源URI的风格;规范了HTTP请求动作(PUT,POST等)的使用,具有对应的语义。

如:
员工信息的uri :http://www.qianfeng.com/employees
书籍信息的uri :http://www.qianfeng.com/books
编号为01001的书籍信息的uri :http://www.qianfeng.com/books/01001

即:不同的资源(信息)是不同的uri

2.优点:

  • 遵循REST规范的Web应用将会获得下面好处:
  • URL具有很强可读性的,
  • 具有自描述性;
  • 资源描述与视图的松耦合
  • 可提供OpenAPI,
  • 便于第三方系统集成,提高互操作性;
  • 如果提供无状态的服务接口,可提高应用的水平扩展性;

3.规范

URI
URI(Uniform Resource Identifiers) 统一资源标示符,能够统一标识一个资源的符号都是URI
URL(Uniform Resource Locator) 统一资源定位符,是URI的一种体现形式。
在restfulAPI的规范里,要让一个资源可以被识别,需要有个唯一标识,在Web中这个唯一标识就是 URI(Uniform Resource Identifier),

URI的格式定义如下:

URI = scheme "://" 域名:端口号 "/" path [ "?" query ] [ "#" fragment ]
  • 协议: API与用户的通信协议,总是使用HTTPs协议。

  • 域名: 应该尽量将API部署在专用域名之下,如:https://api.example.com。(如果确定API很简单,不会有进一步扩展,可以考虑放在主域名下,https://example.org/api/)

  • 版本号:https://api.qianfeng.com/v1/

  • HTTP动词:

  • GET(SELECT):从服务器取出资源(一项或多项)。

  • POST(CREATE):在服务器新建一个资源。

  • PUT(UPDATE):在服务器更新资源(客户端提供改变后的完整资源)

  • PATCH(UPDATE):在服务器更新资源(客户端提供改变的属性)

  • DELETE(DELETE):从服务器删除资源。

  • 路径(Endpoint):
    路径又称"终点"(endpoint),表示API的具体网址

如:https://api.qianfeng.com/v1/GET/employees 获取版本1里的所有employess的信息
如:https://api.qianfeng.com/v1/GET/employees/01001 获取版本1里的id为01001的信息
如:https://api.qianfeng.com/v1/GET/employees?id=01001 获取版本1里的编号为01001的信息
如:https://api.qianfeng.com/v1/GET/employees?name

总结一下: restful规范,最终核心规定的是由“动词”和“名词”构成的需求,这个需求就体现在URI上。

即:要求在URI上能够体现出需求
如: https://api.qianfeng.com/v1/GET/employees 表示 获取 员工信息

如: https://api.qianfeng.com/v1/POST/employees 表示 添加 员工信息

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值