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

如何理解 CRUD 与 REST

但是,现如今 CRUD 常作为「CRUD 应用」出现,「CRUD 应用」指的是通过一个网络应用或移动应用的用户界面,进行创建、读取、更新和删除信息的操作。...图片CRUD 规则从创建到删除,CRUD 基本包含一个循环的概念:创建 (CREATE) 用来添加一项或多项纪录,在数据库中表现为通过 INSERT 语句生成新的记录。...CRUD 后来还出现了其他变形:CRUDL:创建 (create)、读取 (read)、更新 (update)、删除 (delete)、列表 (listing)BREAD:浏览 (browse)、读取...自 2000 年推出以来,REST 已经被用于各种公司各种行业。图片REST 规则REST 有六个约束条件:1. 统一接口RESTful 架构所遵循的统一性原则禁止在一个 API 中使用多个独立接口。...换句话说,一个 REST 服务不需要额外的文档对如何操作资源进行说明。自描述的信息:在 REST 系统中传递消息还要能提供自身如何被处理的信息。例如该消息所使用的 MIME 类型,是否可以被缓存等。

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

设计 API 的 22 条最佳实践,实用!

应该: POST /alarm/245743/resend 请记住,这些不是我们的CRUD操作。相反,它们被认为是在我们的系统中执行特定工作的函数。 7....添加一个fields参数,只公开API中必需的字段。 例子: 只返回商店的名称,地址和联系方式。 GET /shops?...对CRUD函数使用HTTP方法 HTTP方法用于解释CRUD功能。 GET:检索资源的表示形式。 POST:创建新的资源和子资源。 PUT:更新现有资源。...错误 当客户端服务发出无效或不正确的请求,或服务传递无效或不正确的数据,而服务拒绝该请求,就会出现错误,或者更具体地说,出现服务错误。...当由于一个或多个服务错误而拒绝客户端请求,一定要返回4xx HTTP错误代码。 考虑处理所有属性,然后在单个响应中返回多个验证问题。 22.

1.2K10

如何修复WordPress网站的Syntax Errors语法错误

如何修复WordPress网站的Syntax Errors语法错误   如果您在WordPress建站中,经常在网站上尝试各种功能,那么有可能会收到以下错误“Syntax error,unexpected...WordPress建站过程中会出现各种各样的错误,使您的读者无法访问网站,虽然这个问题可能很烦人,但是错误消息会间接告诉您正确的解决方法,这些WordPress错误通常很容易修复。   ...Syntax Errors语法错误常见原因?   WordPress Syntax Errors语法错误WordPress网站添加代码片段的用户中很常见。...作为初学者,当一个错误导致整个网站无法访问,很快就会感到沮丧的情况并不少见。如果您已通过编辑器区域在WordPress仪表板中添加代码,则无法再直接访问您的WordPress代码。   ...当您错误地粘贴代码,可能会出现语法错误。在复制代码遗漏了一部分,或者脚本末尾有一个额外的结束标记。   这是一个PHP标签: <?php this is a closing tag ?

5.1K00

推荐超好用的 6 款 Laravel Admin 管理模版

但是,脚手架只能在开始一个项目才有用,如果您在初始设计中犯了错误,后续则很难进行更改和调整。脚手架软件包的一个例子可以参考 InfyOm Laravel Generator。...这些是视图和控制器的集合,可以自动添加 CRUD 逻辑和 UI 到现有的模型中。这种结构提供了一种快速获得模块化管理后台的方法,它可以轻松地添加到一个新的应用程序中,或改装到一个现有的应用程序中。...图片 主要特征 在 Nova 中模型添加 CRUD 操作的机制被称为资源,这些是您可以在命令行上创建的类似控制器的类,例如要创建一个 Post 资源:php artisan nova:resource...通常大多数 Laravel 模型在 Nova 中工作无需任何额外的配置,但您可以定义具体的细节,如字段如何被编辑等。 此外,Nova 另一个值得关注的特点是允许您在一个或多个模型上执行自定义任务。...--fieldsFile=mySchema.json,之后生成器将尝试创建所有的文件和内容,以实现完整的CRUD功能,包括模型、控制器、组件模版、路由、测试案例、数据表等,完成这些后,就会有一个按照您的要求配置出的

7.4K41

开源 AI 编程助手 AutoDev 0.7 发布—— 生成规范化代码,深入开发者日常

因此,我们在 AutoDev 添加了配置 CRUD 模板代码的规范: { "spec": { "controller": "- 在 Controller 中使用 BeanUtils.copyProperties...在我们使用 IDEA 的 UI 功能写提交信息,可以一键生成参考的提交信息。 一键生成发布日志。在提交历史中,选中多个 commit,根据提交信息,来生成 CHANGELOG。 错误信息一键分析。...编写代码,DEBUG 遇到错误,选中错误信息,可以自动结合错误代码,发送给 LLM 进行分析。 代码测试代码。...在发现了 JetBrains AI Assistant 也在尝试使用类似的方式来构建其 prompt 策略。我们也进一步参考,并完善了 AutoDev 的 prompt 策略,以让其更智能。...Java 语言 + CRUD 模式下,会尝试按相关代码(BeforeCursor)、调用代码的所有方法、调用代码行、相关代码的 UML 等方式构建。

37920

事件驱动架构要避开的 5 个陷阱

随着规模的扩大,需要更复杂的查询,这个时候可以使用额外发布的变更事件来创建专门为复杂查询定制的物化视图。...否则,我们需要花很长时间查看各个服务的日志,并尝试手动将不同的证据片段连接在一起。 自动上下文传播 自动为所有事件添加请求上下文使得过滤与用户请求相关的事件变得非常简单。...由于一些处理错误导致需要进行重复处理,记录到库存数据库中的已购买商品的库存量下降得可能比实际的要多一些。...在发生更新之前需要先读取存储实体的当前 revisionId(或版本),如果有多方尝试同时更新实体(同时增加版本),那么第二个尝试更新的一方将失败,因为版本与之前读取的不匹配。...为每个事件附加 transactionId,避免重复处理 特别是在使用 Kafka ,有可能配置精确一次语义,但由于某些故障,数据库更新仍然可能出现重复。

77430

22条API设计的最佳实践

CRUD函数使用HTTP方法 18. 在嵌套资源的URL中使用关系 19. CORS(跨源资源共享) 20. 安全 21. 错误 22....应该: POST /alarm/245743/resend 请记住,这些不是我们的CRUD操作。相反,它们被认为是在我们的系统中执行特定工作的函数。 7....对CRUD函数使用HTTP方法 HTTP方法用于解释CRUD功能。 GET:检索资源的表示形式。 POST:创建新的资源和子资源。 PUT:更新现有资源。...错误 当客户端服务发出无效或不正确的请求,或服务传递无效或不正确的数据,而服务拒绝该请求,就会出现错误,或者更具体地说,出现服务错误。...当由于一个或多个服务错误而拒绝客户端请求,一定要返回4xx HTTP错误代码。 考虑处理所有属性,然后在单个响应中返回多个验证问题。 22.

1.1K20

Thoughtworks 徐昊:程序员究竟是搞技术的,还是做工程的?

相反,在项目组做 CRUD ,从技术上看,我们就是在做 CRUD。但与此同时,还需要理解“我为什么要做 CRUD”。这就牵扯到应该如何理解业务上下文和业务逻辑等问题。...随着业务的发展,很少会出现一次性的、代码写完就完成了的情况。因而在项目组做 CRUD ,写代码可能仅仅占据整个代码生命周期的 5%。...假设在项目中出现“需求不会做”的情况,此时你面临着两个选择:一是马上别人求助;二是先自己死磕,实在不行了再找人帮忙。我看弹幕里大多数人选择的是后者。 先说我的结论。...这就是我在强调的测试的两个主要目的:发现错误和定位错误。 要知道,我们的生产效率之所以变得越来越慢,之所以出现不敢改祖传代码的情况,是因为所做的修改一旦出错,就无法定位到底是因为什么出的错。...我从小学四年级就开始参加各种算法竞赛,可以说,我不缺技术水平,也不觉得 TDD 会给我带来什么额外的好处。

56520

DRF系列总结一:DRF是啥?为啥子要用?

上面同样是官网的介绍,我稍微翻译一下: 提供了可视化的API调试界面,开发者可以在线测试接口 提供了各种开箱即用的API认证授权工具,如OAuth2 提供了orm数据序和非orm数据的序列化支持 支持函数视图...你不用自己注册各种路由了,简单配置即可 你的权限控制逻辑不用写到业务逻辑中了 ......我们可以看两张“糙图”(画的不是很精细): image.png 上面这张图是Django中开发业务逻辑涉及最多的内容,设计好db后,在urls中定义路由,在views中添加视图函数,并编写业务逻辑,...但是视图函数很自然会写成下面这个样子: image.png 校验逻辑和业务功能很容易耦合到一起,视图函数也很容易被“搞大”,很容易出现重复代码多,函数过长,不好维护等问题。...除此之外,接口地址的命名,接口返回格式等都需要额外规范来统一。

9.3K114

使用TS+Sequelize实现更简洁的CRUD

使用TS+Sequelize实现更简洁的CRUD 如果是经常使用Node来做服务端开发的童鞋,肯定不可避免的会操作数据库,做一些增删改查(CRUD,Create Read Update Delete)的操作...而且可以帮助进行字段类型的转换,避免出现类型强制转换出错NaN或者数字被截断等一些粗心导致的错误。...model路径 模型相关的一系列方法都是支持Promise的 如果在使用过程中遇到提示XXX used before model init,可以尝试在实例化前边添加一个await操作符,等到与数据库的连接建立完成以后再进行操作...const results = await Dog.getList() results[0].leg // TS提示错误 但是如果你像上边那样使用的话,TS会提示错误的:[ts] 类型“Animal”...我们通过在函数上边添加一个范型的定义,并且添加限制保证传入的范型类型一定是继承自Animal的,在返回值转换其类型为T,就可以实现功能了。

2.7K20

10 个影响程序性能的Hibernate 错误,学会让你少走弯路

例如,当Hibernate加载Author实体,它也提取相关的Book实体。这需要对每个Author进行额外的查询,因此经常需要几十甚至数百个额外的查询。 ?...当Hibernate执行1个查询来选择n个实体,然后必须为每个实体执行一个额外的查询来初始化一个延迟的获取关联,就会发生这个问题。 ?...最简单的方法是添加JOIN FETCH语句到FROM子句中。...开发人员在持久化一个新实体或更新现有实体后,调用EntityManager的flush方法时经常会出现这个错误。...JPQL批量操作是罕见的例外之一,对此我将在错误9中解释。 错误8:使用Hibernate应付一切 Hibernate的对象关系映射和各种性能优化使大多数CRUD用例的实现非常简单和高效。

1.9K50

Django内置的通用类视图及实例

方法: get_queryset():获取此视图的对象列表.必须是可迭代或者可以使查询集.默认返回queryset属性.可以通过重写该方法实现动态过滤.让这种方式能够工作的关键点,在于当类视图被调用时,各种有用的对象被存储在...get_context_data(**kwargs): 返回显示对象的上下文数据,通过覆盖该方法返回额外的上下文 2.DetailView ?...显示表单的视图,验证错误时,重新显示表单并显示错误信息;成功,重定向到一个新的URL....,并重定向到get_success_url(),可以覆盖该方法在以上行为之间添加额外的动作.该方法必须返回一个HttpResponse. form_invalid(form):如果表单验证失败,则使用已填充的表单数据和错误信息重新渲染上下文...显示用于创建对象的表单的视图,通过验证错误信息重新显示视图,并且保存对象.

2.9K40

API架构风格对比:SOAP vs REST vs GraphQL vs RPC

为了在扩容快速集成应用,实际的API会使用协议或规范来定义消息传递的语义和语法。这些规范构成了API架构。 过去几年曾出现了几种不同的API架构风格,每种风格都有其特定的标准数据交互模式。...RPC如何工作 客户端唤醒远端程序,序列化参数,并在消息中添加额外的信息,然后将消息发送给服务端。在接收到客户端的消息后,服务端会反序列化消息中的内容,执行请求的操作,并将结果返回给客户端。...一个SOAP消息包含: 每个消息的开始和结束都要包含一个信封标签 包含请求或响应的消息体 标头(如果消息必须确定某些具体要求或额外要求) 请求过程中的错误信息 ?...狭窄的专业知识:构建SOAP API需要深刻理解各种协议,以及严格的协议规则。 乏味的消息更新:在添加和移除消息属性需要额外的工作量,这导致SOAP的采用率下降。...归根结底,最好在一些小场景下尝试每种API风格,然后看是否满足需求,是否能够解决问题。如果可以,则可以尝试扩展到更多的场景。

2.8K11

常见形式 Web API 的简单分类总结

通常2xx表示成功,3xx表示资源被移动了,4xx表示客户端引起的错误,5xx表示服务器端引起的错误。...GraphQL的缺点就是它为服务器添加了许多复杂性,服务器需要额外的工作来处理这些复杂的查询。根据查询内容的不同,性能也是一个变数. 综上所述,那么什么时候应该用哪种Web API呢?...针对CRUD类的API,使用REST 针对暴露很多动作的API,使用RPC 当你需要查询的灵活性以及维护的连续性,使用GraphQL 二、事件驱动式 Web API 针对用请求-响应式...WebHook非常适合于从一个服务器另外一个服务器分享实时数据。 但是实现WebHook,也引入了新的复杂性: 失败和重试。...如果连接挂掉了,客户端会尝试重新初始化连接。但是WebSocket有一些扩展性的问题,因为如果在线的客户端太多,那么服务器端就需要维持这些客户端打开的连接。 ?

2.9K50

1.1 REST

通常2xx表示成功,3xx表示资源被移动了,4xx表示客户端引起的错误,5xx表示服务器端引起的错误。...操作 API难免会有一个非CRUD的操作,例如“存档”这个操作。...下图就是Github的GraphQL API: GraphQL的缺点就是它为服务器添加了许多复杂性,服务器需要额外的工作来处理这些复杂的查询。根据查询内容的不同,性能也是一个变数....针对CRUD类的API,使用REST 针对暴露很多动作的API,使用RPC 当你需要查询的灵活性以及维护的连续性,使用GraphQL 二、事件驱动式 Web API 针对用请求-响应式...如果连接挂掉了,客户端会尝试重新初始化连接。但是WebSocket有一些扩展性的问题,因为如果在线的客户端太多,那么服务器端就需要维持这些客户端打开的连接。

1.2K21

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

易于添加函数。如果 API 有了新的需求,我们可以轻松地添加另一个执行这个需求的端点:1)编写一个新函数,并将其放在一个新端点之后;2)现在,客户可以访问这个端点,并获取符合其需求的信息。 高性能。...因此,客户端要么会担心调用特定端点的带来的任何可能的副作用,要么需要尝试弄清楚要调用的端点,因为客户端不了解服务器如何命名其函数。 可发现性低。...绑定到各种协议。SOAP 在适用于多种场景的传输协议方面是十分灵活的。 内置错误处理。SOAP API 规范允许返回带有错误码及其说明的的 XML 重试消息。 一系列的安全拓展。...由于需要额外的工作来添加或者删除某个消息属性,这种死板的 SOAP 模式减慢了其被采用的速度。 4 SOAP的用例 目前,SOAP 体系结构最常用于企业内部或与其信任的合作伙伴的内部集成。...详细的错误消息:GraphQL 以类似于 SOAP 的方式提供所发生错误的详细信息。它的错误消息包括所有解析器,并指向确切的发生故障的查询部分。

2.3K30

Django内置的通用类视图CBV及示例

方法: get_queryset():获取此视图的对象列表.必须是可迭代或者可以使查询集.默认返回queryset属性.可以通过重写该方法实现动态过滤.让这种方式能够工作的关键点,在于当类视图被调用时,各种有用的对象被存储在...get_context_data(**kwargs): 返回显示对象的上下文数据,通过覆盖该方法返回额外的上下文 2.DetailView ?...显示表单的视图,验证错误时,重新显示表单并显示错误信息;成功,重定向到一个新的URL....,并重定向到get_success_url(),可以覆盖该方法在以上行为之间添加额外的动作.该方法必须返回一个HttpResponse. form_invalid(form):如果表单验证失败,则使用已填充的表单数据和错误信息重新渲染上下文...显示用于创建对象的表单的视图,通过验证错误信息重新显示视图,并且保存对象.

3.2K10

找不到org.springframework.dao.support.DaoSupport的类文件

问题描述在使用Spring框架开发Java应用程序时,当编译或运行项目,你可能会遇到以下错误提示:plaintextCopy codeError:java: package org.springframework.dao.support...在使用Spring框架,需要在项目的构建文件中添加相关的依赖库。如果缺少了​​spring-core​​或其他相关的库,就会导致找不到​​DaoSupport​​类文件。版本不匹配。...检查版本匹配如果你在项目中使用的Spring框架版本与​​DaoSupport​​类所属的版本不匹配,也可能会出现找不到类文件的错误。...假设我们正在开发一个基于Spring框架的电子商务应用程序,需要进行商品信息的CRUD操作。...接口中定义了常见的CRUD方法,如添加商品、查询商品、更新商品等。

49140
领券