對不起,如果這是一個基本問題。但我打算爲我的網站做一個API。首先這個api將被我使用,但後來我會發布給開發者使用它。我很困惑,這個網站將被用於移動應用程序和網站。我打算爲此製作Android應用程序。如何製作json api
問題是我必須在不同的語言中製作這個api,例如用於android平臺的Java,用於iOS的Objective C以及用於web的javascript和php?
如果我只在JavaScript中創建它,它可以用於多個平臺嗎?
對不起,如果這是一個基本問題。但我打算爲我的網站做一個API。首先這個api將被我使用,但後來我會發布給開發者使用它。我很困惑,這個網站將被用於移動應用程序和網站。我打算爲此製作Android應用程序。如何製作json api
問題是我必須在不同的語言中製作這個api,例如用於android平臺的Java,用於iOS的Objective C以及用於web的javascript和php?
如果我只在JavaScript中創建它,它可以用於多個平臺嗎?
在服務器端,您的JSON API將在一個平臺上用一種語言編寫,這可能是PHP,.NET或您選擇的任何平臺。
在客戶端(iPhone,Android等)您需要編寫一個客戶端,該客戶端能夠發出請求並處理對您的JSON API的響應。
但是,爲了在您的客戶端API中實施一致性,您可以使用一種模式,例如請求 - 回覆模式,我總是將它用作易於使用和實現的模式。
這個想法是針對每個JSON API方法的,你有一個Request類和一個Response類。您還可以編寫代表您的JSON API的服務客戶端。
一個例子
比方說,我有一個JSON的服務,讓我聯繫方式來自我的地址簿,它可能有這些服務的方法:在Java中
/contact/{id}
/address_book
/save_contact/{id}
我服務的客戶端(例如)可以有這個接口:
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的,那麼它現在幾乎適用於任何流行的語言。您可以在使用不同語言構建的應用程序之間進行通信,而不會出現問題
您可以在official JSON site處看到各種語言庫的大量列表。
我使用的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":"[email protected]",
"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進行解碼。
我希望降級答案的原因。 –