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

三种主流Web架构

很多时候我更倾向于使用一些JS框架如Prototype来自己开发各种效果,而不是在服务器端生成。在服务器端生成JS的两个结果,一是对生成的代码不信任,二是人变傻,因为你并不知道真正发生了什么。...REST架构让人们真正理解我们的网络协议HTTP本来面貌,对资源的操作包括获取、创建、修改和删除资源的操作正好对应HTTP协议提供的GET、POST、PUT和DELETE方法,因此REST把HTTP对一个...URL资源的操作限制在GET、POST、PUT和DELETE这四个之内。...REST有很多成功的使用案例,著名的Delicious和Flickr都提供基于REST风格的API使用,客户端调用也极其方便,下面是我用ASP写的一个很简单的REST举例,从中可以看出REST是多么的简单易用.../service.asp", "POST", "do=POST") response.write httpGet("http://localhost/rest/service.asp", "GET",

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

    Restfull API

    什么是Restfull API Restfull API 从字面就可以知道,他是rest式的接口,所以就要先了解什么是rest rest 不是一个技术,也不是一个协议 rest 指的是一组架构约束条件和原则...行为有4种常用的:查看、创建、编辑、删除 rest的提出者很巧妙的利用http现有方法来对应这4种行为: GET - 查看 POST - 创建 PUT - 编辑 DELETE - 删除 为什么用...服务,实现前后端分离 再比如在一个大型系统中,可能是多种开发语言一起工作,使用 RESTful API 就可以完全不关心开发语言,以标准的接口来协同工作 Restfull API是怎么定义的 下面通过几个示例了解下...Restfull API的定义方式 (1)查看所有任务 GET http://test.com/tasks (2)新建一个任务 POST http://test.com/tasks Data:...API 通过 GET 方法就知道是查看操作,通过tasks就知道查看的对象是什么

    1K90

    13 个设计 REST API 的最佳实践

    但是,就 REST API 设计本身而言,所涉及到的 HTTP 知识要点大概包含以下几条: HTTP 中包含动词(或方法): GET、POST、PUT、PATCH 还有 DELETE 是最常用的。...在业务领域,我们常常可以将动词和 CRUD(增删查改)关联起来:GET 代表查,POST代表增,PUT 和 PATCH 代表改(注: PUT 通常代表整体更新,而 PATCH 代表局部更新),而 DELETE...不要返回纯文本 虽然返回 JSON 数据格式的数据不是 REST 架构规范强制限定的,但大多 REST API 都遵循这条准则。...但这样做的问题是,通常,web 框架并不是针对构建 REST API 服务而专门存在的,换言之,Flask 和 Express 是两个十分通用的框架,但它们并非特别适合用于构建 REST API 服务。...在各种语言中,许多专门用于构建 REST API 服务的新框架已经出现了,它们可以帮助你在不牺牲生产力的情况下,轻松地完成工作,同时遵循最佳实践。

    4.3K20

    学会 IDEA 中的这个功能,就可以丢掉 Postman 了

    我们创建了一个高质量的技术交流群,与优秀的人在一起,自己也会优秀起来,赶紧点击加群,享受一起成长的快乐。...语法部分 ### 演示POST请求 POST {{baseUrl}}}get?...------ 我们创建了一个高质量的技术交流群,与优秀的人在一起,自己也会优秀起来,赶紧点击加群,享受一起成长的快乐。...推荐阅读 Spring Boot 3.0.3、Spring Cloud 2021.0.6 发布 普通人也能上手使用的数据库与API搭建平台 谷歌最好的程序员:我用过 18 种编程语言 ······...如果你看好一个事情,一定是坚持了才能看到希望,而不是看到希望才去坚持。相信我,只要坚持下来,你一定比现在更好!如果你还没什么方向,可以先关注我,这里会经常分享一些前沿资讯,帮你积累弯道超车的资本。

    54510

    让 API 自动生成文档

    由于业务口径频繁变更,因此很多接口也会频繁变更,频繁变更导致文档的维护是一件相当费时的事情,当优先级更高的事情袭来,更新文档反到成了次要工作,久而久之,文档就算有,也不是最新的,有些接口,干脆文档也不写了...下面对官方给和样例程序及自定义的 api 来自动生成文档,暂时不考虑 api 的权限及有选择的生成 api 文档的功能,这些在深入学习之后,都不是难事。...这样,无论是 post ,还是 get ,我们可以编写统一的 参数获取函数,如下所示: from django.http import QueryDict from rest_framework.request.../', include_docs_urls(title="api接口文档")), ] 与原本的 urls.py 相比,其实就多了两行代码, from rest_framework.documentation...完整代码已上传至百度云,微信公众号 somenzz 回复「api」获取下载链接,欢迎一起学习交流。

    2K20

    前后端分离开发,RESTful 接口如何设计

    注意: 有些人将 POST 视为创建资源的 GET 会话。他们会对创建的资源通过 body 返回200,而不是返回 201。...这似乎是避免二次请求的一种快捷方式,但是这种做法混合了 POST 和 GET,让缓存资源的潜在影响变得微妙。尽量避免因为走捷径而牺牲大局。...POST 动词的另一个主要用途是“追加(Append)”资源信息,即增量编辑或部分更新,而不是提交完整的资源。这里应使用 PUT 操作。...PUT 请求在某种程度上是等幂的,而 POST 更新不是。 如果客户端在 PUT 覆盖请求时被打断,由于重新发送覆盖操不会造成任何后果,因此可以再次发送。...网址:https://www.playframework.com 5.3.5 Spray 两个主要的 Scala REST 框架之一。它设计成配合 Akka actor 模型一起工作。

    3K01

    Dart服务器端 shelf_rest包 原

    基本用法 而不是导入shelf_route import 'package:shelf_route/shelf_route.dart'; 你导入shelf_rest import 'package:shelf_rest...有关与处理程序一起使用的功能的更多详细信息,请参阅shelf_bind的文档。 将路由分组到类 您可以使用addAll方法将路由分组到类中并将它们安装在给定的子路由中。...使用路由注解 您可以使用Get注解,而不是实现采用路由的方法(如上面的createRoutes)。...: accountId); } 对于Router上的所有方法都存在注解,例如@ Get,@ Post,@ Put,@ Delete和@AddAll,这些注解支持与相应方法完全相同的参数。...一种常见的方法是将@RestResource方法与@Get,@ Post,@ Put,@ Delete注解一起用于标准CRUD操作以及不适合标准模型的操作。

    83820

    REST 架构-架构快速进阶教程

    服务器可以返回代码本身的一部分,而不是 JSON 格式的数据。关键是对客户端可以直接使用的数据提供特定操作。虽然,这不是一种常见的做法。 3....第一个,GET用于读取资源。服务器返回给定 URI 的资源。GET 方法不包含正文。它只获取资源,不会以任何方式修改它。 第二个,POST用于将数据传输到服务器。因此,它通常与创建资源相关联。...因此,它表明考虑到 REST 约束,API 的质量很好。 0级被称为痘沼泽。在这个层面上,API并没有使用HTTP协议的全部潜力,通常,它只使用POST和GET方法。因此,HTTP 协议仅用作传输层。...级别 0 API 的示例终结点可能如下所示: POST /api/createUser POST /api/updateUser GET /api/findUserCopy 级别 1 API 定义资源及其...级别 1 API 的示例 URI 包括: POST /api/users/create GET /api/users/{id}/find POST /api/users/{id}/updateCopy

    30510

    Spring Boot快速开发REST服务实践

    总而言之,基于Spring Boot的REST服务与基于Spring的REST服务完全相同,只是在我们引导底层应用程序的方式上有所不同。...1.REST简短介绍 REST代表Representational State Transfer. 是一种架构风格,设计风格而不是标准,可用于设计Web服务,可以从各种客户端使用....基于REST的基本设计,其是根据一组动词来控制的操作 创建操作:应使用HTTP POST 查询操作:应使用HTTP GET 更新操作:应使用HTTP PUT 删除操作:应使用HTTP DELETE 作为.../user/api HTTP POST来创建用户 对于/user/api/1 HTTP GET请求来获取id为1的用户 对于/user/api/1 HTTP PUT请求来更新 对于/user/api/1...答:因为POST请求会在服务端创建与请求次数相同的服务,假如服务端每次请求服务会存在一个密钥,那么这个POST请求就可能不是幂等的,也或许是幂等的,所以POST不是幂等的。

    1K30

    REST vs RPC - RESTful究竟是什么?

    最常见的误解之一,使用HTTP动词(如GET,PUT,POST),而不是使用SOAP绑定网站前端服务器的任何设计框架都称为“RESTful”。...因为误解REST而开发的POX(Plain Old XML)网络服务,有很多 web api实现并没有完全了解REST框架,从而没有真正用到RESTful API的简单性和禅性(相反认为RESTful更加的麻烦...REST的核心原则是解决这些方面的问题,可以被建模成被客户端消费理解的返回对象。 这种面向资源的思想,而不是客户端和服务器之间通信的实现细节,实际上就是REST的全部内容。...-相反,REST API将问题域中的各种实体建模为资源,并使用HTTP谓词来表示针对这些资源的事务 -  POST创建,PUT更新和GET读取。 在同一URL上用不同的HTTP请求都提供不同的功能。...:资源对象要被描述 使用或采取行动----同一个url的get,put,del,post请求返回的对象一致 不是客户端和服务器之间通信的实现细节---不需要RPC那样返回操作结果 3.RESTful

    1.7K50

    一个开胃小菜:Entity To DTO For REST API

    服务层 现在让我们看一下服务层的操作——它显然是与实体(而不是DTO)一起工作: public ListPost> getPostsList( int page, int size, String...控制器层 现在,让我们来看一个标准的控制器,一个暴露Post资源的REST API。 我们将在这里展示一些简单的CRUD操作:创建、更新、获取一条和全部记录。...——我们使用了modelMapper的map API,并且在不编写任何转换逻辑的情况下完成了数据转换。...单元测试 最后,让我们做一个非常简单的测试,以确保实体和DTO之间的转换可以很好地工作: public class PostDtoUnitTest { private ModelMapper...总结 本文是关于如何在Spring REST API中使用modelmapper库来简化从实体到DTO以及从DTO到实体的转换,而不是重复造轮子。

    83930

    REST 入门介绍

    (Architectural Styles) 软件架构 (Software Architectures) 网络 (Network-based) 为基础 REST 本身是设计风格而不是标准。...REST 谈论一件非常重要的事,如何正确地使用 Web标准,例如,HTTP 和 URI。想要了解 REST 最好的方式就是思索与了解 Web 及其工作方式。...在 HTTP/1.1 RFC 2616第 5.1.1 Method 一节定义了八大类 HTTP 方法,除了我们常用的 GET 与 POST 之外,在 REST 中常用的还有 PUT 与 DELETE。...HTTP Method 与 CURD 数据处理操作对应 HTTP方法 数据处理 说明 POST Create 新增一个没有id的资源 GET Read 取得一个资源 PUT Update 更新一个资源。...Resource 与 HTTP 方法的对应 资源 资源说明 GET PUT POST DELETE http://www.cnblogs.com/Products/ Products是一组资源集合 列出

    1.6K80

    RPC 与 REST 介绍及比较

    REST架构对资源的操作包括获取、创建、修改和删除资源的操作正好对应HTTP协议提供的GET、POST、PUT和DELETE方法。...RPC服务提供方与调用方接口依赖方式太强,会导致编码的复杂性,而REST接口相比RPC更为轻量化,服务提供方和调用方的依赖只是依靠一纸契约,不存在代码级别的强依赖。 2....而RPC服务网络传输上仅传输与业务内容相关的数据,传输数据更小,性能更高。 三....REST使用HTTP的方法,例如:GET,POST,PUT,DELETE,OPTIONS还有比较不常用的PATCH方法。...RPC通常只会使用GET和POST方法,GET方法通常用来获取信息,POST方法可以用来进行所有的行为。 既然两种方式都可以实现远程调用,我们该如何选择呢?

    1.4K10

    透析SOA、RPC、SOAP、REST、ICE、ESB模型发展史

    而SOA就是一种思想,就是把项目拆成组件,每个组件暴露出服务,“你调我,我调你”,大家一起把活干完。强调的是服务的相互调用。...REST:表征状态转移(Representational State Transfer),采用Web 服务使用标准的 HTTP 方法 (GET/PUT/POST/DELETE) 将所有 Web 系统的服务抽象为资源...Http协议所抽象的get,post,put,delete就好比数据库中最基本的增删改查,而互联网上的各种资源就好比数据库中的记录(可能这么比喻不是很好),对于各种资源的操作最后总是能抽象成为这四种基本操作...使用的是标准的 HTTP 方法,比如 GET、PUT、POST 和 DELETE。Hypermedia 是应用程序状态的引擎,资源表示通过超链接互联。...其实在理解了REST后,这些都不是什么无解的难题,只是思维方式要转换一下: login和logout其实只是对session资源的创建和删除; search本身就是个资源,使用POST创建,如果不需持久化

    2.4K31

    RESTful 架构以及 RESTful API开发

    当然并不是这样,REST是指Representational State Transfer的缩写,但是这样一样不好理解,是因为少了一个主语Resource。...接口应该使用标准的HTTP方法,常用GET、POST、PUT、DELETE。...RESTful API 由于现在前端系统的复杂多样性(手机、平板、桌面电脑、其他专用设备......),导致现在系统需要有一种统一的机制,方便不同的前端设备与后端进行通信。...宾语必须是名词:宾语就是 API 的 URL,是 HTTP 动词作用的对象。它应该是名词,不能是动词。比如,/articles这个 URL 就是正确的,而下面的 URL 不是名词,所以都是错误的。...动词的覆盖:有些客户端只能使用GET和POST这两种方法。服务器必须接受POST模拟其他方法(比如PUT、DELETE)。

    1.1K40

    反制 Webdriver - 从 Bot 到 RCE 进发

    这里我借用一张原博的图来描述一下Webdriver是如何工作的。...至少我们没办法使用任何非0day来轻易的绕过同源策略的限制,那么我们就需要继续探索~ 通过REST API来RCE 前面提到,selenuim需要通过Webdriver开放的REST API来操作Webdriver...(要注意的是这个api对json的校验非常严格,有任何不符合要求的请求都会报错) 看到这里,我们有了一个大胆的想法,我们是不是可以通过fetch来发送post请求,即便我们无法获取返回,我们也可以触发操作...那么问题来了,如果我们可以通过绑定域名来发送GET请求,那么是不是可以通过DNS Rebinding来读取页面内容呢?...尽管这里我们通过实现一个很棒的利用链构造利用,但唯一的限制条件,--allowed-ips这个配置却非常的少见,在普遍通过Selenium来操作webdriver的场景中,一般的用户都只会配置Chrome的参数选项,而不是

    1.3K30

    RESTful 架构基础

    注意: 有些人将 POST 视为创建资源的 GET 会话。他们会对创建的资源通过 body 返回200,而不是返回201。...这似乎是避免二次请求的一种快捷方式,但是这种做法混合了 POST 和 GET,让缓存资源的潜在影响变得微妙。尽量避免因为走捷径而牺牲大局。...POST 动词的另一个主要用途是“追加(Append)”资源信息,即增量编辑或部分更新,而不是提交完整的资源。这里应使用 PUT 操作。...PUT 请求在某种程度上是等幂的,而 POST 更新不是。 如果客户端在 PUT 覆盖请求时被打断,由于重新发送覆盖操不会造成任何后果,因此可以再次发送。...网址:https://www.playframework.com 5.3.5 Spray 两个主要的 Scala REST 框架之一。它设计成配合 Akka actor 模型一起工作。

    1.1K20

    REST API 最佳实践

    任何遵循 REST 设计原则的 API 都被称为 RESTful API。 简单地说,REST API 是两台计算机通过 HTTP(超文本传输协议)进行通信的媒介,与客户端和服务器的通信方式相同。...简而言之,你应该让 HTTP 动词来处理端点的工作。因此,GET 将检索资源,POST 将创建资源,PUT 将更新整个资源,DELETE 将删除资源,PATCH 更新资源的局部数据。...param1=23¶m2=432 在这种情况下,API响应不会返回任何资源。而是执行一个操作并将结果返回给客户端。因此,您应该在URL中使用动词而不是名词,来清楚的区分资源请求和非资源请求。...# PATH 部分,REST API 的标准最佳实践是使用连字符(hyphen),而不是下划线(underscore)或驼峰(camelcase)。...注意,点赞文章我选择了 PUT 而不是 POST,因为我觉得点赞这种行为应该是幂等的,多次操作的结果应该相同。 4.FAQ 批量删除接口如何设计?

    2.8K20
    领券