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

使用DDD构建你的REST API不是CRUD

REST围绕着资源这个概念构建的,然后用URI表示。然后一个HTTP动词和资源URI组合起来对指定资源进行HTTP调用来执行操作。...让我们谈谈U.通用更新方法允许客户端更新资源的任何字段,然后使用新版本覆盖现有版本。但是,如果允许客户端执行这样的操作,您的服务API在其使用的任何底层数据存储之上,所能提供的价值其实是很小的。...当然,并不是说你必须使用DDD设计你的REST,但是,由于REST资源可以很好地映射到DDD实体,因此我发现设计REST API特别适合使用DDD。 那么这是什么意思?...如果API文档记录的很好的话,例如使用Swagger定义文档,那么每个API的限制(或约束)将变得非常明确。...因此不应该按照CRUD模型构建你的serviceAPI(REST 或其他),而应该是使用DDD,DDD可以根据领域对象和可对其执行的业务操作定义API

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

WordPress JSON REST API简单介绍及使用

WordPress JSON REST API (WP API) 简介 这个插件(WordPress JSON REST API (WP API))提供了一个易于使用REST API,让我们可以通过...WP API为WP查询创建了一个简单方便的接口,文章API,文章元数据API,用户API,版本API等等。WordPress能做的事情,WP API同样可以让你做到,并且更加方便。...WordPress JSON REST API (WP API)的使用 WP REST API插件使用还是非常简单的,在Wordpress后台下载安装好WP REST API插件后,启用插件,注意...注意:只有 “公开” 查询参数可以通过API使用,因为不是所有的查询参数可以安全的暴露出来。只有具有edit_posts权限的授权用户才能使用 “私有” 查询参数。...返回父字段作为一个ID,不是一个嵌入的文章,以确保我们不会遍历后面的整个层次结构。

73910

RESTful API 设计最佳实践

但最重要的是:避免复数和单数名词混合使用,这显得非常混乱且容易出错。 对可选的、复杂的参数使用查询字符串(?)...为资源设置一个基本URL,将可选的、复杂的参数查询字符串表示。 GET /employees?...para2=23¶2=432 在这种情况下,API响应不会返回任何资源。而是执行一个操作并将结果返回给客户端。因此,您应该在URL中使用动词不是名词,清楚的区分资源请求和非资源请求。...只需使用相应的资源集合URL,并将搜索字符串附加到查询参数中即可。 GET /employees?query=Paul 如果要对所有资源提供全局搜索,则需要用其他方法。...在响应参数中添加浏览其它API的链接 理想情况下,不会让客户端自己构造使用REST API的URL。让我们思考一个例子。 客户端想要访问员工的薪酬表。

1.3K60

RESTful API 设计最佳实践

但最重要的是:避免复数和单数名词混合使用,这显得非常混乱且容易出错。 对可选的、复杂的参数使用查询字符串(?)。...为资源设置一个基本URL,将可选的、复杂的参数查询字符串表示。 GET /employees?...para2=23¶2=432 在这种情况下,API响应不会返回任何资源。而是执行一个操作并将结果返回给客户端。因此,您应该在URL中使用动词不是名词,清楚的区分资源请求和非资源请求。...只需使用相应的资源集合URL,并将搜索字符串附加到查询参数中即可。 GET /employees?query=Paul 如果要对所有资源提供全局搜索,则需要用其他方法。...在响应参数中添加浏览其它API的链接 理想情况下,不会让客户端自己构造使用REST API的URL。让我们思考一个例子。 客户端想要访问员工的薪酬表。

1.4K10

REST API 最佳实践

param1=23¶m2=432 在这种情况下,API响应不会返回任何资源。而是执行一个操作并将结果返回给客户端。因此,您应该在URL中使用动词不是名词,清楚的区分资源请求和非资源请求。...只需使用相应的资源集合URL,并将搜索字符串附加到查询参数中即可。 GET /employees?query=Paul 如果要对所有资源提供全局搜索,则需要用其他方法。...# PATH 部分,REST API 的标准最佳实践是使用连字符(hyphen),不是下划线(underscore)或驼峰(camelcase)。...11.URL Query 使用下划线分隔单词 查询字符串是 URL 的组成部分。URL 规范规定查询字符串的不同参数使用与号(&)分隔,参数名与值使用等号(=)分隔。...first-name=john&last-name=doe 虽然在技术上两者都是有效的,但使用下划线的查询参数更符合 REST API 的最佳实践,并且更容易读写和阅读。

1.6K20

只需使用VS Code的REST客户端插件即可进行API调用

而这些数据绝大部分都是由 REST API 端点提供的,通俗地说:我们想要的数据存在于其他服务或数据库中,我们的应用程序查询该服务检索数据,并根据自己的需要使用数据。...在过去,为了在连接 UI 以接受数据之前测试 REST API,通常必须通过终端的命令行查询 API,或者使用像 Insomnia 或 Postman 这样的 GUI(我在之前的博客中对它们进行了比较)...但现在,如果你使用 VS Code(为什么不呢,用它写代码多好啊!),生活就变得简单了。我们不再需要退出 IDE 测试 API,因为现在已经有一个插件可以做到这一点:REST Client。...使用 REST Client 是非常简单的,我将向您展示这个插件是多么简单,而且功能齐全。...我的 GET 指向了 /reset 端点,并在服务端附加了验证所需的 resetPasswordToken 查询参数

8.2K20

Windows 商店应用中使用 SharePoint REST API

当需要向列表中插入新项时,我们需要使用列表项集合 API使用 POST 方法插入数据。需要修改列表中某一项时,则需要使用指定列表项 API使用 MERGE 方法更新数据。       ...该值的获取方式是:向 http://网站URL/_api/contextinfo 发送具有空正文的 POST 请求,并在 contextinfo 终结点返回的 XML 中提取 d:FormDigestValue...上面我们介绍了列表,文件夹等类型 API 的地址构造,接下来我们看看这些请求地址中允许的查询参数都有哪些:               (1)$select 参数        如 SQL 中 Select...(5)$skip 参数        这个参数用于在结果集中跳过指定数量的项,返回剩余的项。使用方法是:_api/web/lists/getByTitle('Books')/items?...下面这张表,涵盖了 SharePoint REST API 中几乎所有的查询条件和数字、字符等的比较关键字。

4.8K150

elasticsearch API约定(二)

前面我们介绍了一些REST API的基本约定,包括多个索引以及索引名称中的Date Math支持,本文我们继续上文的话题,主要来看看公共参数和URL访问控制。...Parameters REST参数使用HTTP时,映射到HTTP URL参数)遵循使用下划线的约定。...Number Values 所有的REST API都支持在原生的JSON number基础之上,将numbered parameters作为字符串提供。...Content-Type Requirements 必须使用Content-Type头信息指定请求正文中发送的内容类型,Content-Type的值必须映射到API支持的一种格式,大多数API支持JSON...批量和多搜索API支持NDJSON,JSON和SMILE,其他类型将导致错误响应。 此外,在使用source查询字符串参数时,必须使用sourcecontenttype查询字符串参数指定内容类型。

79120

干货 | Elasticsearch 开发实战常用命令清单

0、背景 Elasticsearch 具有一组丰富的易于理解的 REST API,这些 API 均可如下几种方式通过 HTTP 调用进行访问。...Curl Postman head 插件 cerebro 工具 kibana 开发实战环节,我推荐使用:kibana Dev-tools。 ?...API很容易,除了实际的主机名/ IP和端口外,它还包含四个部分: 动词——REST调用的 GET,PUT,POST和DELETE部分。...参数——后面的各种选项? 例如?h或?v 对应示例中的:?size=0。参数设定部分。 正文——某些调用需要JSON正文(例如设置选项),并将包含在{}中 对应示例中的:检索语句部分。...1.2 常用选项 有一些通用选项适用于许多(不是全部)URL。这些是: ?help——帮助选项。 将在列表中提供 API 可用的字段,其中包含短名称和长名称、说明等。

60320

API通讯消息进化史

在互联网和物联网高度发达的今天,似乎一切都可以连接起来,彼此连接通讯的方式就是API,而对于API,有很多种方式进行数据的传输,今天我们就来说一说API通信的演变过程。...SOAP 它的全称叫做简单对象访问协议,它是最早人们用来进行数据传输的通讯协议,它通过xml定义了服务调用的参数和类型,定义了正文格式,定义了响应方式, 它可以通过http协议进行传输,也可以通过smtp...虽然很多问题可以被rest解决,比如交易映射,增删改查映射,文档映射,但是还是有很多情况下,rest无法使用所有的映射情况。 GRPC gRPC 是来自 Google 的现代轻量级通信协议。...API 开发人员使用 GraphQL 创建一个模式描述客户端可以通过该服务查询的所有可能的数据。GraphQL 模式由对象类型组成,这些类型定义了您可以请求哪种类型的对象以及它具有哪些字段。...典型的 REST API 请求多个资源时得载入多个 URL, GraphQL 可以通过一次请求就获取你应用所需的所有数据。

50230

REST API URI的七大设计原则

在了解REST API URI设计的规则之前,让我们快速浏览一些我们将要讨论的术语。 URIs REST API使用统一资源标识符(URI)寻址资源。...在不取消引用时,就不应该查看URI字符串的内容以获取其他信息。 ——蒂姆·伯纳斯 - 李 客户端必须遵循Web的链接范例,将URI视为不透明标识符。...为避免这种混淆,请使用连字符( - )不是下划线 规则5:URI路径中首选小写字母 方便时,URI路径中首选小写字母,因为大写字母有时会导致一些问题。...REST API不应在URI中包含人造文件扩展名,指示邮件实体的格式。相反,他们应该依赖通过Content-Type中的header传递media type,确定如何处理正文的内容。...应鼓励REST API客户端使用HTTP提供的格式选择机制Accept request header。 为了是链接和调试更简单,REST API应该支持通过查询参数来支持媒体类型的选择。

1.8K60

【技术干货】Attacking SOAP API

SOAP API是采用SOAP协议的应用程序接口,和REST API不同的是,SOAP 是一种协议, REST 是一种架构风格,这对 SOAP APIREST API 的行为造成了显著差异,比如...SOAP的组成:在SOAP API的消息中存在了四个不同的元素:Envelope: 是将文档标识为 SOAP 消息不是任何其他类型的 XML 文档的基本元素。消息以信封的标签开始和结束。...(必须元素)Header: 是一个可选元素,可以使用 SOAP 模块添加新特性和功能。一个Envelope中可以包含多个标题。(可选元素)body: 正文包含实际消息:请求或响应。...SOAP API 攻击面SOAP 注入SOAP 注入是指在SOAP 协议中,连接服务端和客户端API处发生的注入,通过向SOAP API发送消息的参数添加注入语句实现注入效果,通常包括SQL注入、XML...sql注入后续使用sqlmap工具进一步利用成功注入并获取数据库名。

29220

使用.NET8中的.http文件和终结点资源管理器

这个文件是 Visual Studio 2022 版本的 17.6 以后提供的一个新功能,一种便捷的方式测试 ASP.NET Core项目,尤其是 API 应用。...这些变量将在后续请求中使用。2.获取用户详细信息: 此部分定义了一个 GET 请求,用于获取特定用户的详细信息。我们使用前面定义的变量构建请求 URL 并设置请求头。...在 Visual Studio Code 中使用 在 Visual Studio Code 中,你可以通过安装 REST Client[1] 插件的方式使用。...REST Client 是一款用于 Visual Studio Code 的扩展插件,它允许开发者和测试人员直接在编辑器中发送 HTTP 请求并查看响应。...这个插件特别适合 API 开发者和测试人员,可以方便地测试和调试 RESTful Web 服务,而无需离开 Visual Studio Code 。 REST Client 5.

48910

4种主流的API架构风格对比

十年前,又完全是另一幅光景:REST 是替代 SOAP 的赢家。这些观点的问题在于,它们的出发点只是为某种技术背书,不是去考虑它实际的属性和特性如何与当前的需求相匹配。...客户端和服务端各自负责参数的序列化和反序列化。 (远程过程调用的机制,图源:Guru99) 2 RPC 的优势 简单直接的交互。RPC 使用 GET 获取信息,使用 POST 来处理其他所有操作。...当服务端实现 REST 的某些功能和 RPC 的某些功能时,在 REST 和 RPC 之间确实可能存在这样一个灰色区域。但 REST 是基于资源或名词的,不是基于动作或动词。...REST 是针对 API 的最高级别的抽象和最佳模型。但它往往会有些“啰嗦”增加系统的负担 —— 如果你使用的是移动设备,这是个问题。...GraphQL 在数据获取方面向前迈出了一大步,但并不是每个人都有足够的时间后精力掌握它。

2.3K30

API 自动生成文档

使用 request.query_params 中可以获取 name,phone 等参数,request.query_params 返回的数据类型为 QueryDict,QueryDict 转为普通 python...也可以点击 interact 按钮与 api 进行交互测试 api,如下图所示: ? api2.png ? api3.png ? api33.png 也可以在侧查看返回信息,及原始字符串 raw。...这些 api 有个共同点就是使用 django rest framework 封装好的类实现的,屏蔽了很多细节,现在我们看一下自定义的发邮件 api,看看它的交互如何? ?...自定义的api 可以看到它获取到了 api 中的注释字符串。 ? 自定义的api 未发现参数框 我们发现自定义的 api 没有对应的参数可以填写,这真让人郁闷。...自定义的api 我们发现,有了参数,但是描述信息不知道为什么没有获取到,如果有大神知道,请赐教。 下面交互, ?

1.6K20

wordpress插件开发踩坑记

想要使用 REST API 需要自己额外安装插件:WordPress REST API,现在 WordPress 5.0以上的版本已经默认支持 REST API了,不需要额外去安装插件。...新站首次用 Postman 去 访问 REST API 接口,如:http://EXAMPLE_URL/wp-json/wp/v2/posts,会发现返回的是 404,需要自己在管理后台将:设置-固定链接...WP_Error类的第一个参数不能设为0接口校验不通过时,我们会选择直接 return 一个 WP_Error 对象,但是要注意 WP_Error 的第一个状态码如果是字符串数字会被直接转成数字,切记不能设置为数字或字符串...WP_Query 和 WP_Comment_Query 中的 no_found_rows 参数WP_Query 和 WP_Comment_Query 这两个查询类里,其实都有这个参数no_found_rows...获取请求参数<?

28810

Java 近期新闻:JDK 22、GraalVM for JDK 22、JDK 23 发布时间表、JMC 9.0

该 JEP 提议进行第二轮预览,以获取来自之前一轮预览的反馈,即 在 JDK 22 中发布的 JEP 457(类文件 API (预览))。该特性提供用于解析、生成和转换 Java 类文件的 API。...Eclipse Vert.x 4.5.6 已发布,包含了一些显著变更,例如:重构了 HttpUtils 类中定义的absoluteURI()方法,该方法自己检查请求 URI 的格式,不是使用 JDK...Apache 软件基金会 Apache Tomcat 11.0.0-M18 和 9.0.87 已发布,包含了一些显著变更,例如:确保在成功的FORM身份验证后恢复保存的POST请求正文时 URI、查询字符串和协议不会损坏...进行组装;为配置查询结果存储在查询缓存中的格式提供了新的布局;支持在 Jakarta Persistence 的 @IdClass 注解中使用 Java 记录作为参数。...Java String 类定义的indexOf()和lastIndexOf()方法时,通过使用字符字面量替换字符串字面量提升性能。

13610
领券