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

使用ASP.NET Core 3.x 构建 RESTful API - 2. 什么是RESTful API

但其实REST就是勾画出了这样一幅景象,它描述了Web应用到底怎么样设计才算是优良的。...JSON并不是REST强制的,甚至HTTP都不是REST强制使用的,但这也仅仅是从理论上来看。...对组件进行互联是非常简单的,但是需要在添加新特性或扩大缩小规模时风险降至最低。凭借REST的可移植性,使用REST思想进行设计的系统可以为更广泛的受众使用。...换句话说,需要通过使用元数据或者其它方式,让REST的请求中包含的数据必须带有“自我描述”性的信息,以便让对方知道如何处理该请求。...换句话说,超媒体会驱动如何消费和使用API,它会告诉API消费者使用这些API能做什么,例如:能删除这个资源吗?能修改资源吗?如何能创建这种资源?从哪能获取这个资源?

63710

We Do Sleep At Night, We Do REST Right

微软也发布过关于如何设计 REST API 的开发指南,但是不幸的是,REST 的创始人 Roy Fielding 认为微软的 REST API 规范与 REST 没有多大关系。...例如,可以使用(包含在请求或响应消息中的)控制数据来修改缓存的行为。” “表述的数据格式称为媒体类型(media type)。发送者能够一个表述包含在一个消息中,发送给接收者。...对应于 REST 约束中的“无状态”约束,服务器可以独立处理每个请求,而无须对该客户端先前所有请求的处理进行记忆。 使用标准的方法和媒体类型来表达语义和交换信息。...在目前的共识中(讽刺的是在大多数时候它并没有被应用到设计所谓 REST APIs 中去),HATEOAS 意味着客户端应该使用超文本来作为你在接收到当前的表述后,再进行下一步寻址的方式。...如果可以的话,你可以“应用状态”理解为客户端对资源操作后的展示结果。比如“主页”,“博客”,“关于我”,“成功提交”等操作界面。它和“资源状态”有抽象概念上的区分。

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

Asp.net web api 知多少

REST是一系列原则,用来定义web标准,比如HTTP、URIs 如何使用。...任何会话类型的数据应该在客户端保存和处理,只有在每次请求中按需传递到服务器。 Cacheable(可缓存) - 客户端应该能够缓存响应以供后续使用。 Q3. REST和 SOAP间的区别是什么?...因此 [Queryable]特性添加到controller的方法中,它将会返回 IQueryable结果, 客户端可以使用该方法进行OData组合查询。 可以在IIS或应用程序中寄宿。...WCF Rest WCF 作为 WCF Rest 服务使用,您必须启用 webHttpBindings....ASP.NET MVC5那样,可以在WEB API2的controller级别和action级别定义特性路由: Controller level routing(控制器级别路由) 在控制器级别定义的特性路由应用到所有

4.8K50

Rest Notes-REST架构的视图

摘要: 上一篇我们已经孤立的了解了REST的架构元素,接下来我们可以使用架构视图来描述这些元素如何协作以形成一个架构。...一个用户代理正在处理三个并行的交互(a、b、c),用户代理的客户端连接器的缓存无法满足请求,因此它根据每个资源标识符的属性和客户端连接器的配置每个请求转发到资源的来源服务器 请求a被发送到一个本地代理...通过强制要求消息具有自描述性来支持中间组件的处理,其具体体现为:请求之间的交互是无状态的、使用标准的方法和媒体类型来表达语义和交换信息、以及响应可以明确地表名其可缓存性 连接器视图(Connector...例如标识符如果是一个本地资源,则连接到一个处理本地资源的代理组件 REST并不限制通信只能使用一种特殊的协议,比如上面过程视图中请求chttp转成了wais。...REST所有的控制状态都集中在从交互的响应中接收到的表述之中,其目的是通过使服务器无需维护当前请求之外的客户端状态从而改善服务器的可伸缩性。

77340

【微服务】133:什么是微服务?

Spring提供的RestTmeplate模板使用。 当然系统架构肯定不是说我一篇文章就能学好的,只能说我作为一名初学者,是如何去理解这些概念的。...技术独立:因为是面向服务,提供Rest接口,使用什么技术没有别人干涉。 自治:自治是说服务间互相独立,互不干扰。 前后端独立:以前后端要为电脑端、手机端提供不同接口,现在只需要提供Rest接口。...那它具体是如何实现的呢?...3RestTemplate 它是Spring提供的一个模板工具类,也是上述我使用到的工具: ①SpringBoot测试 在SpringBoot中测试和在Spring中测试有些许不同之处需要注意。...②restTemplate 这也就是spring提供的模板工具类,使用spring注入后,即可以直接使用 ③getForObject() 这是发送一次get请求,postForObject对应着post

42040

【webservice】Java JAX-WS和JAX-RS webservice「建议收藏」

描述了如何访问具体的接口,包括三个属性: 1)如何访问服务:和服务交互的数据格式以及必要的协议; 2)服务在哪里:协议的相关地址,比如url等信息; 3)服务具有哪些功能:webservice...注意:REST不是webservice,JAX-RS只是REST设计风格应用到web服务开发上。...然而,使用RESTFul服务API类似于像Ruby和Python这样的元编程,这会延迟运行时间的问题,因为双方没有达成一致的定义模式和技术上的强制执行。...接着我进行第五次尝试,使用AXIS2插件生成客户端的方式去调用,生成的客户端代码如下: 调用代码如下: 问题完美解决。...通过BindingType项目转到1.2: 在类上面添加以下注解可以使用soap1.2的协议: @BindingType(value=SOAPBinding.SOAP12HTTP_BINDING) 或在

3K20

gRPC vs REST:两种API架构风格的对比

API 指定了一个应用程序(网页或移动应用)可以向另一个应用程序发出的请求类型,并进一步确定:如何发出这些请求;使用哪些数据格式;以及用户必须遵循的实践。...RPC 使用客户端 - 服务器模型。请求服务器(换句话说就是客户端)请求一条消息,该消息由 RPC 转换并发送到另一台服务器。服务器收到请求后响应发送回客户端。...与 REST API 一样,RPC 还建立了交互规则以及用户如何提交“调用”(请求)以调用方法与服务通信和交互的机制。 3什么是 REST?...使用 REST API 时,来自后端数据的响应通过 JSON 或 XML 消息格式传递给客户端(或用户)。这种架构模型倾向于遵循 HTTP 协议。...其原因在于,在使用 REST 时,必须将 JSON(或其他格式)序列化并转换为客户端和服务器端使用的编程语言。这在传输数据的过程中增加了一个额外步骤,从而可能会损害性能并增加出现错误的可能性。

1.3K30

Chef 的安装与使用

可以接着在 workstation 上执行 node list 命令查看是否多了一个 node: # knife node list Chef 的使用 Chef 环境安装完成以后,我们来看看如何使用这套环境来进行配置管理...总体来说,Chef 的配置过程是: 在 Workstation 上定义各个 Chef Client 应该如何配置自己,然后这些信息上传到 Server 端。...每个 Chef Client 连到 Server 查看如何配置自己,然后进行自我配置。 在 Workstation 上使用 Cookbook 来定义配置方法。...我们可以在此目录下新建一个模板,命名为 ubuntu12.04-gems-mine,在原有的 ubuntu12.04-gems 模板基础上进行修改,如安装 chef-client 软件的部分自定义为清单...如果要全面详细的了解 Chef 的各个组件如何配合工作,Chef 提供了哪些内置的资源方便使用者开发 Cookbook,可以参考 Chef 的官网。

2.3K30

知识分享之规范——RESTful API规范

知识分享之规范——RESTful API规范 背景 知识分享之规范类别是我进行整理的日常开发使用的各类规范说明,作为一个程序员需要天天和各种各样的规范打交道,而有些规范可能我们并不是特别了解,为此我一些常见的规范均整理到知识分享之规范系列中...REST 没有强制执行任何关于它应该如何在较低级别实现的规则,它只是提出了高级设计指南,让我们考虑自己的实现。...[自描述消息] 返回给客户端的自描述消息包含充足的信息,能够指明客户端应该如何处理所收到的信息。...5.分层系统 REST 允许您使用分层系统架构,例如,在服务器 A 上部署 API,在服务器 B 上存储数据并在服务器 C 中验证请求。客户端通常无法判断它是直接连接到终端服务器还是中间连接。...日常我们进行各种各样的增删改查,规范中推荐如下HTTP请求方式进行提供相关接口: GET 查询、POST创建、PUT更新、DELETE删除、 REST API 使用HTTP 响应消息的状态行部分来通知客户端其请求的总体结果

88120

Ajax与REST

使用集群后,就需要考虑如何在不同的服务期间传输用户的状态数据。当其中一台挂掉时,是否保留它的状态信息并且在重启后恢复。那么,维护这些状态是否有用呢。...一种就是细分资源的粒度,页面中部分不常发生变动的资源缓存起来,服务器各个部分组合起来发送给客户端。但是无法根本性的解决问题,每个请求中都需要服务器的处理,因此可扩展性和用户响应时间都受到了影响。...缓存Ajax引擎 使用Ajax引擎的应用,能够很多的应用逻辑(使用Javascript实现)和一些页面元素,这样就减轻了服务器的请求和处理压力。 ?...所以在进行应用程序设计时,REST的原则应用到Ajax引擎中,可以为我们访问应用程序资源提供更大的便利。...同时也对于REST开始有了初步的认识,但是REST风格的架构如何设计,如何在目前自己的应用中使用REST风格,还是一个需要摸索的过程。

68920

Vue 2 模版编译流程详解

为了更好理解 vue 的模板编译这里我整理了一份模板编译的整体流程,如下所示,下面将用源码解读的方式来找到模板编译中的几个核心步骤,进行详细说明: 图片 1、起步 这里我使用 webpack 来打包...(AST),此处便是模板编译的入口,使用编译后的 AST vue 模板拆分为 template 、script 和 style 三部分,方便后面 webpack 通过 resourceQuery 匹配分发到各个...vue/compiler-sfc 是模板编译的核心库,在 vue2.7 版本中使用,而 vue2.7 以下的版本都是使用vue-template-compiler,本质两个包的功能是一样的,都可以模板语法编译为...JavaScript,接下来我们来解析一下在模板编译过程中使用的方法: parseHTML 阶段 可以 vue 文件中的模板语法转义为 AST,为后续创建 dom 结构做预处理 export function...图片 3、总结 到此我们应该了解了 vue 是如何打包构建模板编译为渲染函数的,有了渲染函数后,只需要将渲染函数的 this 指向组件实例,即可和组件的响应式数据绑定。

40830

Django-rest-framework 是个什么鬼?

在视图中渲染 HTML 模板,返回 HTTP 响应。 其实,基于 django-rest-framework 的 RESTful API 的开发,过程是完全类似的: 绑定 URL 和视图函数。...使用约定的资源描述格式(例如 XML 或者 JSON)序列化资源并将数据返回给客户端(通过 HTTP 响应)。 对比发现,前两步几乎是完全相同的。...不同点在于,在传统的基于模板引擎的开发方式中,资源使用 HTML 文档进行描述并返回给客户端,而在 RESTful API 的开发方式中,资源通常被描述为 JSON 或者 XML 的格式返回给客户端。...之前说过,在 RESFful 架构的系统中,资源以某种描述形式在客户端和服务器之间传递,django-rest-framework 根据客户端能够接受的资源格式,自动使用合适的资源描述工具,返回客户端可接受的资源...django 基于 Python 语言开发,因此资源通常由 Python 对象描述,那么在传递给客户端时,就要进行转换,例如 Python 对象转换为 JSON 字符串,这个过程就叫做序列化。

98330

Django实践-10RESTful架构和DRF入门

Django静态文件问题备注: 参考: Django测试开发-20-settings.py中templates配置,使得APP下的模板以及根目录下的模板均可生效 解决django 多个APP时 static...SOA服务 SOA包括了关于软件是如何被架构起来的东西,而SaaS是关于软件是如何被应用的。.../1.0/foo], 但这个是不强制的 路径又被称为终点,表示API的具体地址,每个地址代表一种资源。...GET /products #返回所有的产品清单 POST /products #产品新建到集合 GET /products/4 #获取产品4 PATCH /products/4 #更新产品4...(客户端提供改变后的完整资源) PUT /products/4 #更新产品4(客户端提高改变的额属性) DELETE /products/4 #删除产品4 HEAD #获取资源的元数据 OPTIONS

26221

刚学会 C++ 的小白用这个开源框架,做个 RPC 服务要多久?

依赖 Boost 在使用之前应正确安装 Boost. 2.1 安装 通过 git clone 命令项目下载到本地: git clone https://github.com/qicosmos/rest_rpc...Async 作为模板参数 server.run();//启动服务端 return EXIT_SUCCESS; } rest_rpc 支持在同一个端口上注册多个服务...客户端对象,有连接服务端、调用服务端服务、序列化消息、反序列化消息等功能,位于 rest_rpc 命名空间。...3)异步调用远程服务 有些时候我们调用的远程服务由于各种原因需要一些时间才能返回,这时候可以使用 rpc_client 提供的异步调用方法 async_call ,它默认为 callback 模式,模板参数为...新手 rest_rpc 作为 RPC 的入门项目是一个非常好的选择。 至此,相信你已经掌握了 rest_rpc 的绝大部分功能,那么是时候动手搞一个 RPC 服务啦!

1K20

自己动手写一个 K8S YAML 模板化工具

本文我们尝试自己使用 Golang 来实现一个 YAML 资源清单文件模板化的方工具。...使用 YAML 中的 Kind 和 Version 反序列化为静态类型,然后使用它的类型化 REST 客户端进行通信。...使用 Discovery 功能,Discovery 允许我们动态地查找给定类型的 REST 客户端,而不是通过静态类型去访问,下面我们就使用这种方式来进行演示。...对于我们想要实现的功能,需要能够查询给定资源的类型,并与该类型的 REST 客户端进行通信,所以我们分别需要一个 Discovery REST mapper 和一个动态的 REST 接口,代码如下所示:...= nil { log.Fatal(err) } 有了资源类型,我们就可以使用前面的动态 REST 接口获取特定资源对象的客户端了: unstructuredObj := runtimeObject

4.4K20

Spring认证中国教育管理中心-Spring Data REST框架教程一

介绍 REST Web 服务已成为 Web 上应用程序集成的首选方法。在其核心,REST 定义了一个系统,该系统由客户端交互的资源组成。这些资源以超媒体驱动的方式实现。...以下示例展示了如何使用 Gradle 在 Spring Boot 项目中包含 Spring Data Rest: 示例 3....compile("org.springframework.boot:spring-boot-starter-data-rest") ... } 以下示例展示了如何使用 Maven 在 Spring...关于如何在 JSON 中表示链接,有一些相互竞争的事实上的标准。默认情况下,Spring Data REST 使用HAL来呈现响应。HAL 定义要包含在返回文档的属性中的链接。...通过向部署 Spring Data REST 应用程序的根 URL 发出请求,客户端可以从返回的 JSON 对象中提取一组链接,这些链接表示客户端可用的下一级资源。

1.7K10
领券