2012-05-18 12 views
7

Przepraszam, jeśli to podstawowe pytanie. Ale zamierzam zrobić api na moją stronę. Najpierw ta aplikacja będzie używana przeze mnie, ale później wydam dla programistów, aby z niej korzystali. Jestem zdezorientowany, ta strona internetowa będzie używana zarówno w aplikacjach mobilnych, jak i na stronach internetowych. Planuję zrobić na to Androida.Jak zrobić json api

Pytanie brzmi: czy muszę zrobić ten api w różnych językach, tj. W Javie na tablice z Androidem, w Objective C dla iOS i javascript i php dla sieci?

Czy będzie działać na kilku platformach, jeśli zrobię to tylko w javascript?

Odpowiedz

7

Po stronie serwera Twój JSON API będzie napisany w jednym języku na jednej platformie, może to być PHP, .NET lub dowolna platforma do wyboru.

Po stronie klienta (iPhone, system Android itp.) Należy napisać klienta, który może wysyłać żądania i obsługiwać odpowiedzi do interfejsu API JSON.

Jednak w celu wymuszenia spójności między interfejsami API klienta można zastosować wzorzec, taki jak wzorzec żądania i odpowiedzi, cały czas używam go jako łatwego w użyciu i implementacji.

Pomysł dotyczy każdej metody interfejsu JSON API, klasy Request i klasy Response. Można również napisać klienta usługi, który reprezentuje Twój interfejs JSON API.

Przykładem

Powiedzmy mam usługę JSON, który daje mi dane kontaktowe z mojej książki adresowej, to może mieć tych metod serwisowych:

/contact/{id} 
/address_book 
/save_contact/{id} 

mój klient usługi (przykładowo w Javie) może mieć ten interfejs:

public interface AddressBookClient { 
    public GetContactResponse getContact(GetContactRequest request); 
    public GetAddressBookResponse getAddressBook(GetAddressBookRequest request); 
    public SaveContactResponse saveContact(SaveContactRequest request); 
} 

Chociaż implementacja byłaby różna dla różnych platfo klientów rms, używając tego samego podejścia lub wzoru, zachowałoby je spójne.

Nadzieję, że pomaga.

6

Proponuję coś w rodzaju pełnego interfejsu API REST opartego na JSON.

Dzięki temu język interfejsu API jest niezależny.

Po utworzeniu interfejsu API można tworzyć biblioteki klientów w popularnych językach.

+4

Spodziewam się powodu, gdy obniżam ocenę. –

3

Jeśli API jest oparty na JSON, jest on zaimplementowany praktycznie we wszystkich popularnych językach. Możesz komunikować się między aplikacjami zbudowanymi w różnych językach bez żadnych problemów.

Możesz zobaczyć obszerną listę bibliotek dla różnych języków na official JSON site.

1

Używam URL żądania JSON:

api.example.com/api.php?action=User.login&username=admin&password=111 

Odpowiedź JSON jest:

{ 
    "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" 
    } 
} 

Potem ktoś może używać Androida JSON, żeby go rozszyfrować.

Powiązane problemy