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

.net 温故知新【12】:Asp.Net Core WebAPI 中的Rest风格

所以API的请求往往是一个动词用来标识接口的意思,比如 https://xxxx/GetStudent?...REST形式的API组织形态是资源和实体,请求的路由可以看出对资源的访问,规范统一接口自解释。 比如 https://xxxx/Student/1 用Get方法调用就是获取编号为1的学生。...在Rest风格中使用状态码来标识返回结果,其中常用200、201、400、401、404、410、500等。...而在Rest 中Post通常用201返回新增成功,delete 删除的数据不存在返回404,但是404大家知道可能也许是url错误,所以表诉不清。...因此我们在实际设计中可能会进行Rest裁剪,我们既使用RPC的返回结果,同时多用准确的状态码,不用什么都返回200。

1.1K40

REST API有关幂等性等11条最佳实践

在我的职业生涯中,我使用了数百个 REST API 并制作了数十个。由于我经常在 API 设计中看到相同的错误,因此我认为写下一组最佳实践可能会更好。...规则 #8:不要使用 404 来表示“未找到” HTTP 规范规定,应使用 404 来表示未找到资源。按照字面解释,如果向不存在的 ID 提出 GET/PUT/DELETE 等请求,则应返回 404。...HTTP 404 表示 "未找到内容",这与返回 HTTP 500 几乎一样--它可能意味着内容不存在,也可能意味着出了问题;客户端无法确定是哪种情况。...如果将 404 作为成功处理,而堆栈中的失败返回 404,作业就会从队列中删除,删除也不会传播。我在现实生活中就遇到过这种情况。...但几乎任何策略都比返回 404(实体未找到)要好。 规则#10:一定要使用结构化错误格式 如果您正在为一个简单的网站构建后端,您可能可以忽略此部分。

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

    带有 Python REST Web 服务示例的 REST API 快速入门指南

    假设客户端发送 GET 来查询 python 类别的数据,Web 服务器将在响应正文中返回数据。 6 响应代码 这些编码与响应一起返回,并表示发送到服务器的请求的状态。这些类似于 HTTP 响应代码。...创建 API 端点和 REST 方法 接下来,我们需要创建 api 端点和所需的 REST 方法,如下所示。 GET 方法将在文章列表中搜索请求的类别,如果找到则返回数据以及响应代码 200 OK。...否则 404 未找到 class Article(Resource): def get(self, category): POST 方法将在文章列表中插入新的文章数据,并返回插入的数据并创建响应代码...否则 404 未找到。 def delete(self,category): 4.注册资源并分配URI 我们的最后一步是将我们的资源注册到 REST API 并为其分配一个 URI。...api.add_resource(Article, "/category/") TGS.run(debug=True,port=8080) 完整的 REST 示例程序

    3.2K00

    kubernetes 核心组件之 APIServer

    CRD以及相应CustomResource(CR)的REST请求(如果对应CR不能被处理的话则会返回404),也是apiserver Delegation的最后一环 另外还包括bootstrap-controller...,实时监控Node的信息,并做相应处理。...他们通过API Server提供的接口实时监控整个集群里的每一个资源对象的当前状态,当发生各种故障导致系统状态发生变化,这些controller会尝试将系统从“现有装态”修正到“期望状态”。...---- API版本 为了消除字段或重组资源表示形式,Kubernetes 支持多个 API 版本,每个版本在不同的 API 路径下。...默认情况下启用功能。 尽管细节可能会发生变更,对应功能不会被废弃。 在随后的 Beta 或稳定版本中,对象的模式和/或语义可能会以不兼容的方式更改。发生这种情况时,将提供迁移说明。

    1.1K21

    基于场景选择微服务的API范式:REST、GraphQL、Webhooks和gRPC

    为了帮助API开发者了解使用哪种API设计风格以及在什么情况下使用,我们把REST与其他三种选择放在一起进行了一个说明,即:gRPC, GraphQL和Webhooks。...总之,REST是现代微服务API领域非常高效、有效和强大的解决方案。 二、REST案例:PayPal REST API的一个示例应用是PayPal REST API。...PayPal强大的核心业务功能之一是为支付处理提供集成系统。因此,需要使用API简化这一过程。...为此,PayPal API的设计理念是易于理解和易于集成。...但GraphQL并非是“更好的REST”或者“REST的下一步”,而是“客户端和数据之间的新型关系”的另一种选择。 白小白: 关于REST API的演进,应当了解一下REST成熟度的概念。

    3.1K30

    使用PHP对接国外的PAYPAL支付最新REST API接口。

    通过这个邮件我们可以确认 REST API 是目前来说他们用的最新的接口,这个接口的流程就是 1.首先要获取TOKEN 2.然后根据TOKEN创建订单,response中会返回approve_link...接下来我们到官方网站看一下API的使用方法就好了。...从文档中我们可以看到,要调用REST API接口首先要获取TOKEN。 ?...这个图截的大了一些,是为了让大家看到下面的代码,,一般情况下大多数人会认为下面的代码就是获取TOKEN的,但有的时候写API文档的人就是这么奇怪,你也不知道他是怎么想的。。...至止,PAYPAL的订单生成 确认 捕获并扣款流程才算走完。。 以上就是接入PAYPAL REST API 的最终成功方法。。

    8.8K30

    BaaS API 设计规范

    Ø REST:一种开放的基于互联网的软件架构模式。参见:《Representational State Transfer (REST)》。 2. API 设计规范 2.1....statusCode:该操作如果有多种返回的状态,使用statusCode进行区分。一般情况下,statusCode 返回1或0表示成功或失败。该属性用于给开发者进行程序分支的逻辑判断使用。...· 201:表示创建成功,POST 添加数据成功后必须返回此状态码。 · 400:请求格式不对。 · 401:未授权。(App、User) · 404:请求的地址未找到。...如 users/1 未找到该资源。 · 500:内部程序错误。 其中,201、404这两个状态码,是需要API开发者在每一个API中,根据业务逻辑的执行结果来主动返回的。...API操作设计 每个具体的 API地址,都是一个操作。操作分为两种类型:资源型操作、业务型操作。 2.3.1. 资源型操作 资源型操作是满足REST规范化设计的。在设计API 时,应尽量首选这种模式。

    3.7K111

    【剪映小助手】查询视频生成任务的状态和进度

    配合gen_video接口使用,用于实时跟踪视频生成任务的执行情况,包括任务状态、进度百分比、完成结果等信息。...draft_id=2025092811473036584258"获取方式:通过gen_video接口提交任务后返回的draft_url响应格式成功响应(200)任务等待中展开代码语言:JSONAI代码解释...URL(仅在completed状态时有值)error_messagestring错误信息(仅在failed状态时有值)created_atstring任务创建时间(ISO格式)started_atstring...无效的草稿URLdraft_url格式不正确检查草稿URL格式是否正确404视频生成任务未找到指定的草稿URL没有对应的视频生成任务确认是否已通过gen_video接口提交任务500视频任务状态查询失败内部处理错误稍后重试或联系技术支持注意事项轮询间隔...同一草稿URL只能有一个进行中的任务工作流程验证必填参数(draft_url)从任务管理器中查询任务状态将内部状态转换为API响应格式返回任务状态信息相关接口gen_video-提交视频生成任务create_draft

    28310

    PayPal大规模采用GraphQL的探索和实践

    如今,PayPal 的多个生产应用程序都在使用 GraphQL。现在,使用 GraphQL 构建新的 UI 应用程序已经成为默认模式。许多现有应用程序正在迁移到 GraphQL。...在 GraphQL 的帮助下,我们已经能够弥合面向前端应用程序的后端(BFF,backend for frontend)和后端 API 功能之间的差距,因为 GraphQL 可以作为下游 API 的编排层...如果我们遗漏了一个参数,我们将返回文档并再次搜寻这个参数。这使得使用 API 变得比较困难和耗时。...PayPal 有一套庞大的 REST API,支持应用程序核心功能,并且非常靠近数据库。GraphQL 在我们的应用程序中用作编排层。...范式转换:由于 GraphQL 要求采用设计优先的方法,我们在启用业务用例时考虑 GraphQL,并在考虑客户的情况下构建 API。 更快的交付速度:我们能够更快地交付功能。

    3.9K20

    什么是RESTful,REST api设计时应该遵守什么样的规则?

    作为一名开发者,相信在看的各位都知道“REST”这个术语,但是 REST 是什么意思,什么是 RESTful 服务?今天笔者带大家好好了解一下 RESTful。什么是REST?...这就是前后端分离的优势所在。如何使用REST API?HTTP 动词REST API 通过各种 HTTP 请求方法,使前端与服务器的通信过程更容易,最常用的方法是:GET : 用于读取服务器上的数据。...一些常见的 HTTP 状态代码包括:200:成功的请求,通常是 GET201:创建后请求成功,通常是 POST204:请求成功,没有返回内容,通常是 PUT 或 PATCH301:永久重定向到另一个端点...400:错误请求(客户端应修改请求)401:未经授权,凭据无法识别403:禁止,凭据接受但没有权限404:未找到,资源不存在410:消失了,资源以前存在但现在不存在429:请求过多,用于速率限制,应包含重试标头...500:服务器错误,一般性,值得查看其他 500 级错误503:服务不可用,另一个重试标头有用总结REST是一种软件架构风格,用于 Web 架构的设计,任何遵循 REST 设计原则的 API都被称为 RESTful

    1.5K30

    不容错过的 Node.js 项目架构

    Express.js 是用于开发 Node.js REST API 的优秀框架,但是它并没有为您提供有关如何组织 Node.js 项目的任何线索。 虽然听起来很傻,但这确实是个问题。...这篇文章是基于我多年来在处理一些糟糕的 Node.js 项目结构、不好的设计模式以及无数个小时的代码重构经验的探索研究。...这是我要谈论的 Node.js 项目结构。 我在构建的每个 Node.js REST API 服务中都使用了下面这个结构,让我们了解下每个组件的功能。...pub/sub 模式超出了这里提出的经典的 3 层架构,但它非常有用。 现在创建一个用户的简单 Node.js API 端点,也许是调用第三方服务,也许是一个分析服务,也许是开启一个电子邮件序列。...使用 Pub/Sub 模式并为后台任务触发事件。 进行依赖注入,让您高枕无忧。 切勿泄漏您的密码、机密和 API 密钥,请使用配置管理器。

    6.9K30

    REST在许多API使用场景中仍然优于GraphQL

    随着时间的推移,随着您在请求中增加资源,理解和遵循您的速率限制将变得更加复杂。 最后,随着 API 的成熟,其 GraphQL 模式变得更加复杂。...为什么 REST 更好并且将继续存在 以下是一些 REST 是集成 SaaS 应用程序的最佳选择的原因。 REST API 附带标准化的错误代码。...这些代码——包括从 404(未找到)到 500(内部服务器错误)的所有内容——使诊断问题和构建自动解决问题的错误处理流程变得容易。...由于这些响应不像 REST 中那样标准化,因此它们更难计划和自动处理。 许多工程师都有构建和/或维护 REST API 集成的经验。 各种规模的公司主要使用 REST API。...鉴于 REST 的流行程度,您的开发人员可能在构建和维护 REST API 集成方面经验丰富且得心应手。

    1.2K10

    Python构建RESTful API指南

    import api_viewfrom rest_framework.response import Response​tasks = [ {"id": 1, "title": "Task 1"...使用HTTP状态码:使用适当的HTTP状态码来表示请求的结果,如200表示成功,404表示资源未找到,500表示服务器错误等。...数据验证:在处理请求数据之前进行数据验证,以确保数据的完整性和一致性,可以使用Flask-WTF或Django REST framework等库来实现数据验证。...错误处理:在API中实现统一的错误处理机制,对于常见的错误情况(如资源未找到、权限不足等),返回适当的HTTP状态码和错误信息,以便客户端能够正确处理错误情况。...title': task.title, 'description': task.description, 'done': task.done} for task in tasks]})异常处理和错误信息返回良好的异常处理和错误信息返回可以提高

    1.4K30

    RESTful API,以及如何使用它构建 web 应用程序。

    RESTful API是一种基于REST(Representational State Transfer)架构风格的API(Application Programming Interface),它采用HTTP...一、RESTful API的概念 REST(Representational State Transfer)是一种软件架构风格,它强调将网络上的所有事物都抽象为资源,并对资源进行标准化描述和控制。...RESTful API则是基于REST架构风格的API设计规范,它通过使用HTTP协议定义和操作资源,实现了API的标准化和模块化。...错误处理:RESTful API使用HTTP状态码进行错误处理,如404表示资源未找到等。...返回响应数据: 通常使用JSON格式返回数据,因为它是一种轻量级、易于理解和生成的数据格式。 确保返回的数据格式符合预期,例如使用适当的HTTP状态码和数据结构。

    85110

    API 接口设计的未来趋势:探索技术方向与实践方案

    摘要 随着技术的发展,API接口设计从最初的单一请求响应模式逐渐演化为多样化的架构模式和高效的传输协议。...从REST到GraphQL,从API网关到服务网格,API接口设计正向着更高效、更安全、更可扩展的方向发展。...无状态化与Serverless API 无状态化:减少服务器端状态管理,提升API的可扩展性和容灾能力。 Serverless:以事件驱动为核心,API仅在被调用时触发计算,降低成本。...Scroll组件:显示返回的API数据,支持滚动查看。 动态数据绑定:通过this.apiResponse动态展示API返回值。...API网关是集中式架构,服务网格采用去中心化代理方式。 Q2. GraphQL比REST有哪些优势? 更灵活的数据查询,避免了传统REST中多个接口请求的问题。 强类型支持,减少数据传输的错误率。

    69543

    常见的API架构风格

    在构建应用程序时,选择合适的API架构风格对于实现良好的性能和开发体验至关重要。...以下是几种常见的API架构风格: 1.REST(表述性状态转移): REST是一种基于标准HTTP方法的架构风格,通过使用无状态的通信来实现轻量级的、可扩展的服务。...GraphQL API由类型和操作构建的模式定义。 3.SOAP(简单对象访问协议): SOAP是一种用于在网络上交换结构化信息的协议,通常使用XML进行消息传递。...它简化了分布式系统中的通信,通过本地调用的方式实现远程调用。 5.WebSocket: WebSocket提供全双工通信通道,允许客户端和服务器之间进行实时双向通信。...例如,我们使用Stripe或Paypal作为支付渠道,并为支付结果注册了一个Webhook。当第三方支付服务完成时,它会通知支付服务支付是否成功或失败。Webhook调用通常是系统状态机的一部分。

    56910

    Rest api简介

    理解和使用内容协商 我们的开发者在发送一个 REST API 请求的同时,根据应用场景,针对相同的资源,可能会期待不同的返回形式。 比如,我希望根据用户客户端语言,同一个资源的内容可以返回不同的语言。...IBM developerWorks 的文件服务标签云的 API REST API 请求,要求返回 XML 格式数据: GET https://www.ibm.com/developerworks...format=xml &scope=document&pageSize=30&sK=cloud&sO=dsc REST API 请求,要求返回 JSON 格式数据: GET https:/...使用 URI 模式进行内容协商 还有一种模式,就是将协商设置直接作为 URI 的一部分,将不同的返回视为不同的资源,比如 / 航班号 /json 来返回 JSON 格式的结果,用 / 航班号 /atom...404 未找到 , 服务器找不到请求的网页。 405 方法禁用 , 禁用请求中所指定的方法。 406 不接受 , 无法使用请求的内容特性来响应请求的网页。

    3K60
    领券