我正在尝试构建一个系统,该系统将拥有一个网站和一个 iPhone 应用程序,它们将由相同的数据驱动。我了解我将如何创建和构建网站,但在添加 iphone 应用程序时,我不确定它将如何应用。
我对设计的考虑:
-为网站使用 C#、SQL Server、asp.net(我会尽可能使用 Web 服务获取我的大部分数据)
-使用Objective-C、x-code等开发iphone应用
1.) 我是否需要公开一个网络服务供 iphone 与之交互?如果是这样,那是否会被视为与实际网站分开的网络应用程序?还是将网络服务内置于网站中,然后 iPhone 也可以与该网络服务交互?
2.) 在公开 Web 服务时,我需要考虑哪些安全方面的问题?
3.) 对于构建这样的系统还有其他架构建议吗?也许是个人在使用同一数据库运行网站/iphone 应用程序方面的经验。
最佳答案
是的,您需要为应用程序公开一个 web 服务以进行绑定(bind)/对话。我建议该服务作为一个单独的站点运行(例如 data.yourdomain.com,该站点将在 yourdomain.com 上运行),该网站也将其用于其数据。这样您就可以为两个“端点”(网站和应用)共享相同的架构。
确保您的网络服务在每次调用时都使用身份验证 token (用户名/密码或 oauth 等)将有助于防止对服务/数据库进行任何未经授权的调用。此外,确保您的服务通过有效的 HTTPS 连接(且仅限 https)公开,将防止嗅探数据以获取密码。
正如我在第 1 点中所说的那样,构建服务的方式与访问它的“端点”无关。这样一来,如果您添加一个 Android 应用程序或 Windows Phone 应用程序(甚至是第二个网站),您将不需要提供新服务。或许将每个应用程序“帐户”绑定(bind)到一个“端点类型”(例如 Android/iPhone/WinPhone/WebSite),这样您就可以根据需要自定义返回的数据对象。
关于c# - 构建完整的 Web 服务、网站和 iPhone 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11202195/