在Xamarin中与服务器通信的最佳方式?

时间:2016-05-09 23:05:31

标签: azure xamarin xamarin.ios xamarin.forms xamarin-studio

我对Xamarin和移动开发完全陌生。我的第一个问题是体系结构明智的做法是使用现有的Rest api通过移动客户端传输数据是一种很好的做法。

我挖掘了谷歌,Xamarin Azure云文档,但没有找到任何满意的文章。此外,我们有一个使用Azure的REST apis的ember前端应用程序。

如果此信息不够,请向我询问,如果重复,请不要犹豫,将其标记为重复,并附上正确的链接。谢谢大家,请帮助并分享您的丰富经验。

谢谢

我经历过的几个链接

https://azure.microsoft.com/en-us/documentation/learning-paths/appservice-mobileapps/

http://www.davevoyles.com/asp-net-web-api-vs-azure-mobile-services/

https://azure.microsoft.com/en-us/blog/azure-mobile-services-why-should-asp-net-developers-care/

http://weblogs.asp.net/scottgu/azure-virtual-machine-machine-learning-iot-event-ingestion-mobile-sql-redis-sdk-improvements

https://azure.microsoft.com/en-us/documentation/articles/app-service-mobile-value-prop/

https://azure.microsoft.com/en-us/documentation/articles/app-service-mobile-ios-get-started/

https://azure.microsoft.com/en-us/documentation/articles/partner-xamarin-mobile-services-ios-get-started/

1 个答案:

答案 0 :(得分:2)

如果您只想使用现有服务器REST API,那么显而易见的一步是在Xamarin中构建REST客户端。忘记Xamarin或任何相关的Azure移动服务客户端,因为这需要更改服务器代码。

关于如何构建REST客户端,有多种选择,但我建议使用Refit作为更简单,更快捷的方法。例如,您在一个简单的界面中声明您的REST方法:

public interface IGitHubApi
{
    [Get("/users/{user}")]
    Task<User> GetUser(string user);
}

神奇的是,所有必需的代码都将在编译时生成,因此您可以专注于API方法而不是实现本身,并在几分钟内构建客户端,而不是几小时或几天。然后你可以使用这样的界面:

var gitHubApi = RestService.For<IGitHubApi>("https://api.github.com");
var octocat = await gitHubApi.GetUser("octocat");

不使用Azure移动服务客户端的缺点是,如果您需要任何离线/在线同步,您必须自己制作。但根据我的经验,客户端 - 服务器数据同步是一个边缘情况,在绝大多数应用程序中根本不需要。