2012-05-18 18 views
7

Disculpe si esta es una pregunta básica. Pero estoy planeando hacer una API para mi sitio web. Primero usaré esta API, pero luego la lanzaré para que los desarrolladores puedan usarla. Estoy confundido, este sitio web se usará tanto para aplicaciones móviles como para sitios web. Estoy planeando hacer una aplicación de Android para esto.Cómo hacer json api

La pregunta es, ¿tengo que hacer esta API en diferentes idiomas, es decir, en Java para placas de android, en Objective C para iOS y javascript y php para web?

¿Funcionará para varias plataformas si solo hago esto en javascript?

Respuesta

7

En el lado del servidor, su API JSON se escribiría en un idioma en una plataforma, esto podría ser PHP, .NET o cualquier plataforma de su elección.

En el lado del cliente (iPhone, Android, etc.) Necesitaría escribir un cliente que sea capaz de realizar solicitudes y manejar respuestas a su API JSON.

Sin embargo, para aplicar la coherencia en las API de su cliente puede emplear un patrón, como el patrón de solicitud y respuesta, lo uso todo el tiempo ya que es fácil de usar e implementar.

La idea es para cada método JSON API, tiene una clase Request y una clase Response. También escribiría un cliente de servicio que represente su API JSON.

Un ejemplo

Digamos que tengo un servicio JSON que me da los datos de contacto de mi libreta de direcciones, podría tener estos métodos de servicio:

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

Mi cliente de servicios (ejemplo en Java) podría tener esta interfaz:

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

Aunque la implementación sería diferente en la plataforma cliente rms, usando el mismo enfoque o patrón los mantendría consistentes.

Espero que ayude.

6

Sugeriría algo así como una API REST llena basada en JSON.

Esto hace que el lenguaje API sea independiente.

Una vez que se ha creado la API, puede crear bibliotecas cliente en los idiomas más populares.

+4

Espero una razón para bajar la calificación de una respuesta. –

3

Si la API está basada en JSON, actualmente está implementada para casi cualquier lenguaje popular. Puede comunicarse entre compilación de aplicaciones en diferentes idiomas sin problemas.

Puede ver una lista extensa de bibliotecas para diferentes idiomas en el official JSON site.

1

estoy usando un URL para solicitar el JSON:

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

La respuesta JSON es:

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

Entonces, alguien puede utilizar Android JSON para decodificarlo.