2012-05-18 67 views
7

Xin lỗi nếu đây là câu hỏi cơ bản. Nhưng tôi đang lên kế hoạch để tạo một api cho trang web của mình. Đầu tiên api này sẽ được sử dụng bởi tôi nhưng sau đó tôi sẽ phát hành cho các nhà phát triển để sử dụng nó. Tôi bối rối, trang web này sẽ được sử dụng cho cả ứng dụng dành cho thiết bị di động và cho trang web. Tôi đang lập kế hoạch để làm cho ứng dụng android cho việc này.Cách tạo json api

Câu hỏi đặt ra là tôi phải thực hiện api này bằng các ngôn ngữ khác nhau, ví dụ: trong Java dành cho biểu mẫu android, trong Mục tiêu C cho iOS và javascript và php cho web?

Tính năng này có hoạt động đối với một số nền tảng không nếu tôi chỉ thực hiện việc này bằng javascript?

Trả lời

7

Ở phía máy chủ, API JSON của bạn sẽ được viết bằng một ngôn ngữ trên một nền tảng, đây có thể là PHP, .NET hoặc bất kỳ nền tảng nào bạn chọn.

Ở phía máy khách (iPhone, Android, v.v.) Bạn cần viết một ứng dụng khách có khả năng thực hiện các yêu cầu và xử lý các phản hồi đối với API JSON của bạn.

Tuy nhiên, để thực thi tính nhất quán trên API ứng dụng khách, bạn có thể sử dụng mẫu, chẳng hạn như mẫu trả lời yêu cầu, tôi luôn sử dụng nó như dễ sử dụng và triển khai.

Ý tưởng dành cho mọi phương thức JSON API, bạn có lớp Yêu cầu và lớp Phản hồi. Bạn cũng sẽ viết một trình khách dịch vụ đại diện cho JSON API của bạn.

Một ví dụ

Hãy nói rằng tôi có một dịch vụ JSON mang lại cho tôi chi tiết liên lạc từ sổ địa chỉ của tôi, nó có thể có những phương pháp dịch vụ:

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

dịch vụ khách hàng của tôi (ví dụ trong Java) có thể có giao diện này:

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

Mặc dù việc triển khai sẽ khác nhau giữa khách hàng platfo rms, bằng cách sử dụng cùng một cách tiếp cận hoặc mẫu sẽ giữ cho chúng phù hợp.

Hy vọng điều đó sẽ hữu ích.

6

Tôi sẽ đề xuất một thứ gì đó giống như API REST đầy đủ dựa trên JSON.

Điều này làm cho ngôn ngữ API của bạn độc lập.

Khi API được tạo xong, bạn có thể tạo thư viện ứng dụng bằng các ngôn ngữ phổ biến.

+4

Tôi mong đợi một lý do khi hạ cấp câu trả lời. –

3

Nếu API dựa trên JSON, nó được triển khai cho khá nhiều ngôn ngữ phổ biến hiện nay. Bạn có thể giao tiếp giữa các ứng dụng được xây dựng bằng các ngôn ngữ khác nhau mà không có vấn đề gì.

Bạn có thể xem danh sách thư viện phong phú cho các ngôn ngữ khác nhau tại số official JSON site.

1

Tôi đang sử dụng một URL để yêu cầu các JSON:

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

Câu trả lời JSON là:

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

Sau đó, ai đó có thể sử dụng Android JSON để giải mã nó.