gpt4 book ai didi

android - .NET 框架之外的 Servicestack 客户端,实现?

转载 作者:太空宇宙 更新时间:2023-11-03 13:33:37 30 4
gpt4 key购买 nike

我计划在 .NET 之外使用 ServiceStack 提供的 REST 服务。我计划为 java 和 obj-c 编写客户端。这应该很容易,因为它是一个 REST 服务,但是在文档中似乎另有建议:

But ServiceStack includes two clients which are optimized for ServiceStack in aspects like exception handling etc.

我将如何使用 Android 实现 ServiceStack 客户端?只是按照正常的 REST 消费程序?我应该担心任何异常处理问题吗?

此外,身份验证是否会成为一个问题(我将使用 BasicAuthentication)?

最佳答案

ServiceStack 网络服务提供纯 HTTP/REST API,它们本质上只是通过网络序列化的 POCO DTO。您可以控制整个 HTTP 输出,因为 ServiceStack 不会在您的序列化负载周围添加任何额外的杂物。

期望纯序列化 DTO

固执己见 的本质来自于 ServiceClients 假设服务只是返回纯序列化的 DTO(即没有额外的垃圾),它只是按原样反序列化为指定的响应类型。 ServiceClients 的独特之处在于它们为您提供了一个强类型的端到端 API,无需任何代码生成,因为您可以重用您定义 Web 服务所用的 POCO DTO。

回退到预定义的路由

未在 API 中指定 relativeOrAbsoluteUri 的 API,例如 Send<TResponse>(dto)将默认使用 pre-defined routes由 ServiceStack 自动提供,允许您调用 Web 服务而无需为其指定任何自定义路由。您当然可以选择使用您的自定义路由,而不是坚持 IRestClientIRestClientAsync允许您指定要使用的 url 的 API。

自动错误处理

C# ServiceStack ServiceClients 是优化的,因为按照惯例,ServiceStack 网络服务将在您的 Response DTO 的 ResponseStatus 属性中序列化结构化错误响应(仅当它有一个时) .所有服务客户端所做的只是将错误响应反序列化为类型化的 C# WebServiceException,这使您的 C# 客户端可以对结构化错误进行强类型访问,如 Validation wikipage 中详细解释的那样。 .

ResponseStatus 属性基本上只是一个约定(不是一些反 REST 魔法),您仍然可以控制返回的 HttpStatus 代码和描述。它只是另一个纯 DTO 属性,所有 REST 客户端都可以平等访问 - 这里是 simple JavaScript ss-validation.js提取 responseStatus 元数据并将错误注入(inject) Twitter Bootstrap HTML 表单的例程。

关于android - .NET 框架之外的 Servicestack 客户端,实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10158253/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com