Json 休息有那么重要吗?

Json 休息有那么重要吗?,json,http,rest,asp.net-web-api,Json,Http,Rest,Asp.net Web Api,我正在开发一个基于web的应用程序,它使用基于HTTP的JSON API在服务器和客户端之间进行通信。目标是,可以使用要通过此web服务共享的相同联机数据,以不同的目标(联机web客户端、脱机桌面客户端或创建的第三方)开发多个客户端 目前,客户机和服务器之间的通信仅通过一个运行良好的系统通过POST发送。我读了很多关于REST的信息,以及使用PUT、GET、POST和DELETE使用HTTP实现RESTful的信息。我可以将我的API分为这些不同的类别,但这意味着需要更多的代码和对API的一些更

我正在开发一个基于web的应用程序,它使用基于HTTP的JSON API在服务器和客户端之间进行通信。目标是,可以使用要通过此web服务共享的相同联机数据,以不同的目标(联机web客户端、脱机桌面客户端或创建的第三方)开发多个客户端

目前,客户机和服务器之间的通信仅通过一个运行良好的系统通过POST发送。我读了很多关于REST的信息,以及使用PUT、GET、POST和DELETE使用HTTP实现RESTful的信息。我可以将我的API分为这些不同的类别,但这意味着需要更多的代码和对API的一些更改

我的问题是:对于基于HTTP的API来说,RESTful有多重要?这是一种建议、一种选择,还是一种近乎必要的选择


提前感谢。

这是一个建议。我很高兴你没有进入你需要进入的休息状态,因为有一种叫做Hi-Rest和Lo-Rest的东西。你可以通过谷歌搜索获得更多信息。我认识的一些行业老手并不太关心这一点,但我发现尽可能接近html和http从长远来看会帮助您,并简化许多事情

> P>服务API考虑的一个(许多)因素是它们可以被最终用户消耗掉。REST正在获得一个非常强大的工具存在


到目前为止,最大的开发组是.NET开发组,使用Linq使用REST的ADO.NET for services(Astoria)非常简单和优雅。

它是将web应用程序作为具有定义良好的API的web服务公开的几种选项之一。其他选择包括:

  • 没有API-应用程序没有真正的方式在其他分布式系统中用作组件
  • SOAP—用于定义API远程调用的XML格式
  • JSON—一种用于信息交换的紧凑格式,可以在其上创建自定义API格式(如果需要,也可以用于构建REST系统)
  • 许多其他形式的远程过程调用和信息交换介质

  • REST背后有一个很好的理想,但这并不意味着您必须为应用程序提供RESTAPI。如果收获不值得付出额外的努力,那就不用麻烦了。

    我认为拥有它是一件好事,但不是必须的。根据我的经验,添加这种架构增加了项目的范围和复杂性,但它确实为整个项目增加了一定程度的优雅。我想说,如果你有这个项目的时间和预算,那就去做吧,如果没有的话,别担心。

    作为一个例子,我想说的是尽可能使用HTTP(有问题的REST协议)。为什么?好吧,我会给你们看两段我昨天和一个非常聪明的好朋友的电子邮件交流的片段(他曾经是IT的教授,现在还在讲课,无论去哪里都会踢屁股)

    昨天我通过了一个重要的考试 my mappodrhom的里程碑
    应用:我现在可以启动了 长时间运行的后台计算
    进入工作人员池。当他们结束时, 工人们把他们的结果公布出来 直接进入REST资源。 哪个触发了更多的背景 处理,全部由 依赖关系图

    有趣的是 这种宁静的背景是
    实际上独立于我的 特殊应用。但我是
    现在太累了,不能完全 把握后果:-)

    所讨论的后果是巨大的(它是一个REST框架,有许多小堆栈、事件、服务和应用程序,都有自己的可发现URI,都有相同的统一接口),在可扩展性和可伸缩性方面,它的简单性是无与伦比的。如果你的应用程序是一个很小的东西,永远不会去旅行或遇到辣妹,是的,也许你不需要它。但后来,我也说过同样的话,突然发现自己和一个可爱的女孩坐在去巴黎的火车上,她是俄罗斯人的秘密间谍,好吧,一件事导致了另一件事

    以下是我的回答,我有一些自己的经验

    我想这听起来(请原谅我的法语) 真是太棒了!我正在经历 我自己的休息用品也有类似的东西, 因为中间层是这样的 薄而透明,我只能 按我需要的方式扩展 不用太担心天气 基础设施。这是一种自由, 这么酷的东西,我的 大脑即将爆炸,一个 令人担忧的好奇,为什么没有更多的人 这样做

    简而言之,休息就像根本不做一样。你只是把你的东西转移到一个不同的管道上,错过了一个简化的API,变成了一个状态机,核心是语义和实现解耦,使用构建网络的原则(因此我要说你已经有了相当成熟的想法)、统一的接口,并将URI作为建模的一部分


    我知道大家都说你可以选择,这只是选择。不是。通过充分利用它,但为了说服你进一步扩展你的大脑并做一些聪明的事情,我只能让你敢于突破FUD(这都是关于RPC的,只需要GET和POST,你不需要它,相当于JSON、SOAP和其他类似的东西,等等),并且在如何制作应用程序方面更加聪明<是啊,我敢说你们所有人

    除非您打算利用超媒体,否则我不会费心尝试遵守REST约束。超媒体是使系统大于其各部分之和的拼图的一部分


    您可以自由选择要在体系结构中遵守的REST约束,只需注意,要能够调用最终结果RESTful,唯一可选的约束是“代码下载”。

    REST与响应格式无关,只要求响应为超文本(基本上是这样的