如何制作JSON API

7
抱歉,如果这是一个基础问题,请见谅。但我计划为我的网站制作一个API。首先,这个API将由我使用,但以后我会发布给开发者使用。我感到困惑的是,这个网站将用于移动应用程序和网站。我计划为此制作Android应用程序。
问题是,我是否需要用不同的语言来制作此API,即Java用于Android平台,Objective C用于iOS,JavaScript和PHP用于Web?
如果我只使用JavaScript,它能在多个平台上工作吗?
4个回答

7
在服务器端,您的JSON API将在一种语言和一种平台上编写,可以是PHP、.NET或您选择的任何平台。
在客户端(iPhone、Android等),您需要编写一个客户端,该客户端能够发出请求并处理对您的JSON API的响应。
但是,为了在客户端API中强制执行一致性,您可以采用模式,例如请求-响应模式。我经常使用它,因为它易于使用和实现。
这个想法是对于每个JSON API方法,您都有一个请求类和一个响应类。您还将编写一个表示您的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);
}

尽管在客户端平台上实现的方式可能不同,但使用相同的方法或模式可以使它们保持一致。
希望这有所帮助。

6
我建议使用基于JSON的RESTful API,这样可以使API与语言无关。一旦API制作完成,您就可以在流行的语言中创建客户端库。

4
降低答案评级时,我希望能够得到一个解释原因的理由。 - Subir Kumar Sao

3
如果API基于JSON,那么今天几乎所有流行的编程语言都可以使用它。这意味着不同语言构建的应用程序之间通信毫无问题。
您可以在官方JSON网站上看到各种语言的库的详细列表。

1
我正在使用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对其进行解码。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接