对不起,如果这是一个基本问题。但我打算为我的网站制作一个 api。首先这个 api 将由我使用,但稍后我将发布给开发人员使用它。我很困惑,这个网站将用于移动应用程序和网站。我打算为此制作android应用程序。
问题是我是否必须用不同的语言制作这个 api,即在 Java 中用于 android 平台,在 Objective C 中用于 iOS 以及 javascript 和 php 用于 web?
如果我只在 javascript 中制作它,它会适用于多个平台吗?
对不起,如果这是一个基本问题。但我打算为我的网站制作一个 api。首先这个 api 将由我使用,但稍后我将发布给开发人员使用它。我很困惑,这个网站将用于移动应用程序和网站。我打算为此制作android应用程序。
问题是我是否必须用不同的语言制作这个 api,即在 Java 中用于 android 平台,在 Objective C 中用于 iOS 以及 javascript 和 php 用于 web?
如果我只在 javascript 中制作它,它会适用于多个平台吗?
在服务器端,您的 JSON API 将在一个平台上以一种语言编写,这可以是 PHP、.NET 或您选择的任何平台。
在客户端(iPhone、Android 等)您需要编写一个能够发出请求并处理对 JSON API 的响应的客户端。
但是,为了在您的客户端 API 中强制执行一致性,您可以使用一种模式,例如请求-回复模式,我一直使用它,因为它易于使用和实现。
这个想法是针对每个 JSON API 方法,你有一个 Request 类和一个 Response 类。您还将编写一个代表您的 JSON API 的服务客户端。
一个例子
假设我有一个 JSON 服务,它可以提供我通讯录中的联系方式,它可以有以下服务方法:
/contact/{id}
/address_book
/save_contact/{id}
我的服务客户端(Java 中的示例)可以有这个接口:
public interface AddressBookClient {
public GetContactResponse getContact(GetContactRequest request);
public GetAddressBookResponse getAddressBook(GetAddressBookRequest request);
public SaveContactResponse saveContact(SaveContactRequest request);
}
尽管跨客户端平台的实现会有所不同,但使用相同的方法或模式将使它们保持一致。
希望有帮助。
我会建议类似基于 JSON 的 REST 完整 API。
这使您的 API 语言独立。
制作 API 后,您就可以制作流行语言的客户端库。
如果 API 是基于 JSON 的,那么它几乎适用于当今任何流行的语言。您可以毫无问题地在以不同语言构建的应用程序之间进行通信。
您可以在官方 JSON 站点上查看针对不同语言的大量库列表。
我正在使用 URL 来请求 JSON:
api.example.com/api.php?action=User.login&username=admin&password=111
JSON 响应是:
{
"resultcode":100,
"resultdata":{
"id":"1",
"username":"admin",
"password":"$1$$TUPijxhaACBBZHMowbtgD.",
"name":"chenwendong",
"email":"mdowen@foxmail.com",
"sex":"\u7537",
"age":"11",
"phone":"15811111111",
"address":"\u5317\u4eac\u7231\u7231\u7231\u554a\u554a\u554a\u554a\u554a\u554a\u554a\u554a\u554a\u554a\u554a\u554a\u554a\u554a\u554a\u554a\u554a\u554a\u554a\u554a\u554a\u554a\u554a\u554a\u554a",
"province_id":"1",
"city_id":"1",
"last_login_ip":"127.0.0.1",
"last_login_time":"2012-05-07 17:32:55",
"state":"1",
"intime":"2012-05-07 09:49:11",
"is_deleted":"0",
"province":"\u5317\u4eac\u5e02",
"city":"",
"sid":"fcd6321c4cd4748a0cee2e7cc337506b",
"uid":"1",
"message_count":"11"
}
}
然后,有人可以使用 Android JSON 对其进行解码。