Questions tagged «web-services»

Web服务是旨在支持网络上可互操作的机器对机器交互的软件系统。

7
这是“反模式”吗,我应该停止使用它还是这个聪明的设计?
创建REST服务时,我基本上已经注视着要执行以下操作: 要求HTML 服务返回所需的网页,但没有请求的“资源”,例如。数据 网页包含向同一服务发出AJAX请求的JavaScript(不同的内容类型) 服务然后返回实际数据(JSON),然后页面将其显示 一方面,它似乎效率低下(2个请求),但后来我用了它,“性能无关紧要”,这意味着内部应用程序和网站的低流量运行非常简单且加载速度很快。 我之所以这样做,是因为该网页几乎可以是纯HTML + JavaScript的,几乎不需要服务器端的东西,尤其是不需要循环,就可以创建表和类似的东西(与之相比,我觉得这很丑陋)诸如slickgrid之类的东西),例如数据和视图的分离。 现在,在我开始使用它之前,这是个好主意还是应该停止这样做?

1
如何在ASP.NET中构建良好的服务层?
我研究了一些问题,以及用于构建良好服务层的技术,但与此相关的一些问题我需要帮助。 首先,我需要一些信息。当前,我们有许多Web应用程序以蜘蛛网的方式相互通信(所有Web应用程序和数据库数据都以令人困惑的方式相互通信)。 我们希望对此进行更改,以便所有应用程序都经过一个服务层,在该服务层中,我们可以更多地使用缓存并封装通用功能等等。 我们希望该层也具有Web API,以便第三方客户端可以使用该服务中的信息。 我看到的问题是,如果我们使用MVC4 Web API构建服务层,则不需要使用webAPI在应用程序之间进行通信,这意味着我们必须构造URL并使用JSON / Xml。听起来不太有效。我假设有一个更好的方法将与实体和WCF一起在应用程序之间进行通信,但是我们可能会松开Web API的魔力? 因此,问题在于是否有一种方法可以将服务层既用作Web API(JSON / XML),又用作具有实体的后端服务层。如果我们被迫使用2个不同的服务层,我们可能不得不重复一些功能和其他不好的事情。 希望这个问题很清楚,请询问是否需要更多信息。

6
我需要一个真正的随机数生成器Web服务[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,以使它成为软件工程堆栈交换的主题。 5年前关闭。 Random.org 每天每个IP提供来自模拟世界(cf.)的200k免费随机位(仅6250个32位整数!)。 有谁知道每天提供更多按需随机比特的替代Web服务? (只要价格在每美元美分1000×1024bits的“预期范围内”就可以付款)(random.org的付费服务收费为该价格的100×)

2
递归资源的最佳RESTful URL结构是什么?
我正在为树状资源结构创建RESTfull服务,并且想知道最佳的URL结构是什么? 我有三个要求: 能够获得根资源的集合 能够获得个人资源 能够收集儿童资源 我目前的想法是: /rest/documents /rest/documents/{id} /rest/documents/{id}/documents 我还考虑过使用单数/复数形式来表示列表或单个元素,但是我知道我将拥有与单数相同的复数形式的资源,因此决定对此进行反对。 有人对以上有任何想法吗?还是有其他/更好的方式来构造这个?

2
微服务和规范模型
当我在该网站上阅读有关微服务的信息时,遇到了以下声明。规范架构是什么意思?与域模型不一样吗? 微服务架构模式还拒绝了SOA的其他部分,例如规范架构的概念。

3
CRUD API:如何指定要更新的字段?
假设您有某种数据结构,该数据结构保留在某种数据库中。为简单起见,我们将此数据结构称为Person。现在,您要负责设计CRUD API,该API允许其他应用程序创建,读取,更新和删除Person。为简单起见,让我们假定通过某种Web服务访问此API。 对于CRUD的C,R和D部分,设计很简单。我将使用类似C#的功能符号-实现可以是SOAP,REST / JSON或其他方式: class Person { string Name; DateTime? DateOfBirth; ... } Identifier CreatePerson(Person); Person GetPerson(Identifier); void DeletePerson(Identifier); 那更新呢?自然要做的是 void UpdatePerson(Identifier, Person); 但你会如何指定哪些领域Person要更新? 我可以提出的解决方案: 您始终可以要求通过一个完整的“人员”,即客户将执行以下操作来更新出生日期: p = GetPerson(id); p.DateOfBirth = ...; UpdatePerson(id, p); 但是,这将需要某种事务上的一致性或在Get和Update之间锁定;否则,您可能会覆盖其他客户端并行进行的其他更改。这会使API更加复杂。此外,由于下面的伪代码(假设客户端语言支持JSON),因此容易出错。 UpdatePerson(id, { "DateOfBirth": "2015-01-01" }); - 看起来正确-不仅会更改DateOfBirth,而且会将所有其他字段重置为null。 您可以忽略所有的字段null。但是,您将如何在不更改 DateOfBirth和有意将其更改为null之间做出区别? 将签名更改为void UpdatePerson(Identifier, Person, ListOfFieldNamesToUpdate)。 将签名更改为void …

2
REST还是多层异构系统中的消息队列?
我正在为三层系统设计REST API,例如:Client application-> Front-end API cloud server-> user's home API server (Home)。 Home是家用设备,应该Front-end通过Websocket或长时间轮询来保持连接(这是我们违反REST的第一个地方,以后还会更糟)。Front-end大多数情况下会将Client请求传送到Home连接并处理一些呼叫本身。有时会Home向发送通知Client。 Front-end并Home具有基本相同的API;Client可能是Home通过LAN直接连接。在这种情况下,Home需要Client在Front-end自身上注册一些操作。 该系统中REST的优点是: REST是人类可读的; REST具有明确定义的动词(如CRUD),名词和响应代码到协议对象的映射。 它可以通过HTTP运行并传递所有可能的代理。 REST的反对意见是: 我们不仅需要一种请求-响应通信方式,还需要一种发布-订阅方式。 HTTP错误代码可能不足以处理三层通信错误。Front-end可能返回202 Accepted异步调用只是为了发现必要的Home连接断开了,应该已经连接了503; Home需要向发送邮件Client。Client将必须进行轮询Front-end或维护连接。 我们正在考虑通过Websocket上的WAMP / 高速公路来获得发布/订阅功能,这让我惊讶的是它已经看起来像消息队列。 是否值得评估一种消息队列作为传输方式? 看起来像消息队列相反是: 我需要在消息级别上自己定义CRUD动词和错误代码。 我读到一些有关“较高的维护成本”的信息,但这意味着什么? 这些考虑有多严重?

5
良好的Web服务器开发设置建议[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 6年前关闭。 一个月左右前,我创建了我的第一个LAMP堆栈,并实现了一个简单的网站,该网站使用了该首字母缩写词。但是,我的开发设置远不理想。我实际上没有本地测试服务器,但是我是在vim中编写所有CGI脚本的,同时以root身份登录到远程计算机中。现在,我打算开始更认真的发展。 问题:什么是好的设置,以便尽可能轻松地进行开发? 我想了解IDE,subversion(或替代方案),上载和下载内容以及最佳实践等方面的可用功能。所有这些我都是新手。另外,请随时向我指出良好的网站。网站很多,但是只有那些已经在大量开发Web内容的人才能快速确定自己是否是好网站。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.