如何制作 json api


How to make json api

对不起,如果这是一个基本问题。但我打算为我的网站制作一个 api。首先,这个 API 将由我使用,但稍后我将发布供开发人员使用它。我很困惑,这个网站将用于移动应用程序和网站。我打算为此制作安卓应用程序。

问题是我是否必须用不同的语言制作这个api,即在Java中用于android平台,在iOS的Objective C和javascript和php中用于Web?

如果我只在 javascript 中执行此操作,它会适用于多个平台吗?

在服务器端,你的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);
}

尽管客户端平台的实现会有所不同,但使用相同的方法或模式将使它们保持一致。

希望有帮助。

我会建议像基于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对其进行解码。