首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

用ASP.NET Core 2.0 建立规范 REST API -- DELETE, UPDATE, PATCH 和 Log

REST API里,我们有时也会遇到这样需求。我们暂时把这个方法叫做Upsert (Update + Insert) 。那么问题来了应该使用POST还是PUT呢?...但是总体思路就是这样,注意里面新增和修改返回结果略有不同。  PATCH 局部更新资源 使用PUT最整体更新,缺点还是很明显,所以我更多使用PATCH局部更新。...PATCH用来局部更新创建资源  可以修改相关代码来支持局部更新创建资源操作: ? 这个我就不测试了,自增Id不适合这种操作。...;没找到资源则返回 404 PUT api/countries,集合操作很少见,返回 200,204404 PATCH(局部更新): PATCH api/countries/{id},200单个数据,...204或者404 PATCH api/countries, 集合操作很少见,返回 200集合,204404.

1.8K20
您找到你想要的搜索结果了吗?
是的
没有找到

REST API 最佳实践

如果你有一个像 https://mysite.com/post/123 这样端点,用 DELETE 请求删除一个帖子,或用 PUT PATCH 请求更新一个帖子,可能是可以,但它没有告诉用户在这个集合中可能还有一些其他帖子...GET 是幂等。GET 具有只读含义。因此,你可以完美的使用缓存。 创建:使用 POST 创建新资源(非幂等)。 更新:使用 PUT 更新整个资源,PATCH 将部分修改应用于资源。...PUTPATCH 都是幂等。 删除:使用 DELETE 删除现有资源(幂等)。 简而言之,你应该让 HTTP 动词来处理端点工作。...# PATH 部分,REST API 标准最佳实践是使用连字符(hyphen),而不是下划线(underscore)驼峰(camelcase)。...Facebook API 版本是这样: Spotify 以同样方式做他们版本管理: 并不是每个 API 都是这样Mailchimp API 版本是这样: 当您以这种方式提供

1.5K20

使用 Java @Annotations 构建完整 Spring Boot REST API

本文旨在演示用于构建功能性 Spring Boot REST API 重要 Java @annotations。Java 注解使用使开发人员能够通过简单注解来减少代码冗长。...对注解支持从版本 5 开始,允许不同 Java 框架采用这些资源。 注释也可以在 REST API使用。...3 Swagger UI 配置中 Java @Annotations 文档是任何项目的一个重要方面,因此我们 REST API 使用 Swagger-UI 进行记录,这是许多标准元数据之一。...Swagger 是用于创建交互式 REST API 文档规范和框架。它使文档能够与对 REST 服务所做任何更改保持同步。它还提供了一组工具和 SDK 生成器,用于生成 API 客户端代码。...只有带有注释方法@ApiOperation才会被扫描并添加到 API 声明中。一些处理程序操作需要使用事务来确保数据完整性和一致性。 事务管理是企业应用程序中确保数据完整性和一致性一项基本技术。

3.3K20

使用DDD来构建你REST API,而不是CRUD

大多数REST框架提供了指定资源名称生成器,框架围绕着它来生成脚手架。不幸是,许多这些生成器使用CRUD模型(Create,Read, Update, Delete)作为默认起始点。...资源被定义为一系列属性,使用类似JSON Schema某个具体语言数据对象来定义,然后生成方法存根,然后来创建,读取,更新和删除该资源。...当然,并不是说你必须使用DDD来设计你REST,但是,由于REST资源可以很好地映射到DDD实体,因此我发现设计REST API特别适合使用DDD。 那么这是什么意思?...在客户端,将变得更加明确,什么操作可以执行,什么操作不可以执行。如果API文档记录很好的话,例如使用Swagger来定义文档,那么每个API限制(约束)将变得非常明确。...因此不应该按照CRUD模型来构建你serviceAPI(REST 其他),而应该是使用DDD,DDD可以根据领域对象和可对其执行业务操作来定义API

2.1K50

使用 HTTP PUT, PATCH 以及 MERGE 请求消费 SAP ABAP OData 服务修改操作实现及其区别试读版

编程模型开发 OData 服务 正在写作中,敬请期待 序言 本文介绍通过 HTTP PUTPATCH 和 MERGE 这三种不同类型请求触发 SAP ABAP OData 服务时,服务器端 ABAP...SAP ABAP OData 服务如何支持修改(Update)操作,我们介绍了如何使用 HTTP PATCH 请求消费我们开发 SAP 图书管理 OData 服务,去触发图书库存字段 stock_number...当时在前一步骤末尾,我们留下了一个悬念:SAP ABAP Gateway Client 里触发修改操作,除了通过 HTTP PATCH 这种类型之外,还有 PUT 和 MERGE 可供选择。...那如果我选择使用 PUT 或者 MERGE,结果会怎样?...本文就来详细介绍,通过 HTTP PUT / MERGE / PATCH 这些请求类型,触发 SAP ABAP OData 服务更新请求实现细节及其差异。

40620

2019-05-31 使用 REST-Assured 测试 REST API 进阶技巧和最佳实践

各种针对 REST API 测试工具也应运而生,《使用 Rest-Assured 测试 REST API》已进行了初步介绍。...从本质上说,REST API 测试主要是测试 HTTP GET/POST/DELETE/PUT 这几个方法。其中,最复杂主要是 GET 和 POST/PUT 两种情况。...GET 方法主要测试返回 xml JSON 返回体。返回体属性及内容越多,测试就越复杂。 POST/PUT 方法主要测试发送过去请求体是否能通过验证,并且是否根据请求体创建修改相应内容。...它安装和简单使用本文就不再赘述,请参考《使用 Rest-Assured 测试 REST API》。 我们首先看前面提到第一个复杂点--验证返回体。JSON 返回体因为其结构简单,非常常用。...小结: 本文介绍了如何使用 Rest-Assured 和 JSON Schema 测试 REST API 方法及其他技巧。

1.7K20

【SpringBoot系列04】SpringBoot之使用JPA完成简单rest api

使用freemark视图模板 【SpringBoot2.0系列04】SpringBoot之使用JPA完成简单rest api 【SpringBoot2.0系列05】SpringBoot之整合Mybatis...对于每个资源只能执行一组有限操作。(7个HTTP方法:GET/POST/PUT/DELETE/PATCH/HEAD/OPTIONS) 关于rest api如何涉及我也是从阮一峰老师那里学习。...根据id删除用户信息 那么这就是我们需要构建rest api,那么对应由mvc模式可知我们rest api是controller层,所以我们service跟repository层(备注在使用...3、测试 由于我们这里测试rest api普通浏览器是没法支持 post delet put方式访问,所以这里我们就用postman来测试。...三、总结 这里我们通过这次选择对于jpa使用有了一个初步了解,并且对于rest api规范也有了个了解。

1.7K60

Django-DRF多年积累md笔记 0基础高高手. 第(2)期:django RESTful设计方法

本文从分析现在流行前后端分离Web应用模式说起,然后介绍如何设计REST API,通过使用Django来实现一个REST API为例,明确后端开发REST API要做最核心工作,然后介绍Django...课 程思路:我们从分析现在流行前后端分离Web应用模式说起,然后介绍如何设计REST API,通过使用Django来实现一个REST API为例,明确后端开发REST API要做最核心工作,然后介绍...GET /products :将返回所有产品清单 POST /products :将产品新建到集合 GET /products/4 :将产品 4 PATCHPUT /products...200 OK - [GET]:服务器成功返回用户请求数据201 CREATED - [POST/PUT/PATCH]:用户新建修改数据成功。...400 INVALID REQUEST - [POST/PUT/PATCH]:用户发出请求有错误,服务器没有进行新建修改数据操作401 Unauthorized - [*]:表示用户没有权限(令牌

22420

Django Rest Framework-介绍

理解RESTful架构 RESTful API设计 API与用户通信协议,总是使用HTTPS协议。...:在服务器新建一个资源 PUT :在服务器更新资源(客户端提供改变后完整资源) PATCH :在服务器更新资源(客户端提供改变属性) DELETE :从服务器删除资源 过滤,通过在url上传参形式传递搜索条件...201 CREATED - [POST/PUT/PATCH]:用户新建修改数据成功。...400 INVALID REQUEST - [POST/PUT/PATCH]:用户发出请求有错误,服务器没有进行新建修改数据操作,该操作是幂等。...410 Gone -[GET]:用户请求资源被永久删除,且不会再得到。 422 Unprocesable entity - [POST/PUT/PATCH] 当创建一个对象时,发生一个验证错误。

1.8K40

如何使用RESTler对云服务中REST API进行模糊测试

RESTler RESTler是目前第一款有状态针对REST API模糊测试工具,该工具可以通过云服务REST API来对目标云服务进行自动化模糊测试,并查找目标服务中可能存在安全漏洞以及其他威胁攻击面...如果目标云服务带有OpenAPI/Swagger规范,那么RESTler则会分析整个服务规范,然后通过其REST API来生成并执行完整服务测试。...: dotnet nuget locals all --clear RESTler使用 RESTler能够以下列四种模式运行: Compile:从一个Swagger JSONYAML规范生成一个RESTler...C:\RESTler\restler\Restler.exe compile --api_spec C:\restler-test\swagger.json Test:在已编译RESTler语法中快速执行所有的...语法中,每个endpoints+methods都执行一次,并使用一组默认checker来查看是否可以快速找到安全漏洞。

4.8K10

REST初体验

https://api.example.com/v1/ 版本号放在HTTP头信息中,不如放入URL方便和直观。 服务器返回数据格式,应该尽量使用JSON,避免使用XML。...一般来说,数据库中表都是同种记录"集合"(collection),所以API名词也应该使用复数。...PUT(UPDATE):在服务器更新资源(客户端提供改变后完整资源)。 PATCH(UPDATE):在服务器更新资源(客户端提供改变属性)。 DELETE(DELETE):从服务器删除资源。...200 OK - [GET]:服务器成功返回用户请求数据,该操作是幂等(Idempotent)。 201 CREATED - [POST/PUT/PATCH]:用户新建修改数据成功。...400 INVALID REQUEST - [POST/PUT/PATCH]:用户发出请求有错误,服务器没有进行新建修改数据操作,该操作是幂等

81620

RESTful 接口实现简明指南

实际上,我们不只有GET 和 POST 可用,在 REST 架构中,有以下几个重要请求方法:GET,POST,PUTPATCH,DELETE。这几个方法都可以与对数据 CRUD 操作对应起来。...POST /api/users { "name": "John Snow" } 【Update】资源更新,用于更新 HTTP 方法有两个,PUTPATCH。...PUTPATCH 有各自不同使用场景: PUT 用于更新资源全部信息,在请求 body 中需要传入修改后全部资源主体; 而 PATCH 用于局部更新,在 body 中只需要传入需要改动资源字段...PUT /api/users/123 { "name": "PUT Update" } 上述 PUT 请求操作后内容是: { "id": 123, "name": "PUT Update" }...当我们都熟悉且遵循这样规范后,基本可以看到一个 REST 风格接口就知道如何使用这个接口进行 CRUD 操作了。

1K10

JSON Patch

什么才是真正 REST Api 并不是本文重点(Github Rest API v3),笔者在后文讨论具体实现,也只是符合目前流行“RESTful”直觉设计。 2....HTTP 谓词 谓词 释义 幂等性 安全性 HEAD 用于获取资源 HTTP Header 信息 是 是 GET 用于检索信息 是 是 POST 用于创建资源 否 否 PUT 用于更新替换完整资源批量更新集合...对于没有 Body PUT 动作,请将 Content-Length 设置为 0 是 否 DELETE 用于删除资源 是 否 PATCH 用于使用部分 JSON 数据更新资源信息(在一个请求里可搭载多个动作...PATCH 是一个相对较新 HTTP 谓词,在客户端服务器不支持 PATCH 动作时,也可以使用 Post/Put 更新资源 否 否 3....PATCH & JSON Patch 结合上述 HTTP 谓词,通常情况下,更新部分资源部分数据时,有以下四种做法: 使用 PUT 谓词, 尽可能使用完整对象来更新资源(即根本不使用 PATCH )。

1.4K60

RESTful 接口实现简明指南

实际上,我们不只有GET 和 POST 可用,在 REST 架构中,有以下几个重要请求方法:GET,POST,PUTPATCH,DELETE。这几个方法都可以与对数据 CRUD 操作对应起来。...POST /api/users { "name": "John Snow" } 【Update】,资源更新。用于更新 HTTP 方法有两个,PUTPATCH。...PUTPATCH 有各自不同使用场景: PUT 用于更新资源全部信息,在请求 body 中需要传入修改后全部资源主体; 而 PATCH 用于局部更新,在 body 中只需要传入需要改动资源字段...PUT /api/users/123 { "name": "PUT Update" } 上述 PUT 请求操作后内容是: { "id": 123, "name": "PUT Update" }...当我们都熟悉且遵循这样规范后,基本可以看到一个 REST 风格接口就知道如何使用这个接口进行 CRUD 操作了。

88010

JSON Patch

什么才是真正 REST Api 并不是本文重点(Github Rest API v3),笔者在后文讨论具体实现,也只是符合目前流行“RESTful”直觉设计。 2....HTTP 谓词 谓词 释义 幂等性 安全性 HEAD 用于获取资源 HTTP Header 信息 是 是 GET 用于检索信息 是 是 POST 用于创建资源 否 否 PUT 用于更新替换完整资源批量更新集合...对于没有 Body PUT 动作,请将 Content-Length 设置为 0 是 否 DELETE 用于删除资源 是 否 PATCH 用于使用部分 JSON 数据更新资源信息(在一个请求里可搭载多个动作...PATCH 是一个相对较新 HTTP 谓词,在客户端服务器不支持 PATCH 动作时,也可以使用 Post/Put 更新资源 否 否 3....PATCH & JSON Patch 结合上述 HTTP 谓词,通常情况下,更新部分资源部分数据时,有以下四种做法: 使用 PUT 谓词, 尽可能使用完整对象来更新资源(即根本不使用 PATCH )。

2K10
领券