2011-12-01 15 views
21

Duplicar posible:
Is it necessary to have a wsdl file for the creation of a webservice in php?Cómo crear un servicio web API en PHP

Quiero crear una API web.

Mi requisito es que deseo crear una forma para que mis clientes puedan insertar/eliminar datos de la base de datos de mi sitio web, pero no quiero que los clientes inicien sesión directamente en mi sitio. Quiero que llamen a mi URL de archivo WSDL a través de una solicitud del cliente, que devolverá la respuesta al cliente.

He oído que podemos hacerlo con la ayuda de la llamada SOAP o NuSOAP. He intentado varios métodos después de hacer algunas búsquedas en Google, pero no he tenido éxito.

¿Puede por favor decirme las instrucciones paso a paso cómo puedo lograr esto.

+0

@TillHelgeHelwig: Esa es una pregunta completamente diferente ... En realidad, la pregunta tiene un título engañoso ... – codersofthedark

Respuesta

51

Básicamente, ¿Qué es una API?

Si comprende cómo van los datos de un formulario HTML a un código php, confíe en mí, ya sabe todo acerca de las API. Aquí en lugar de hablar de formas, hablamos de las URL que se crean al final por esas formas ...

¿Cuáles son los tipos de API?

Existen dos tipos de API muy utilizadas para servicios web: SOAP y REST. Google es uno de los principales jugadores con una API basada en SOAP, mientras que Yahoo (y la mayoría de sus adquisiciones recientes) han adoptado el enfoque REST. En la mayoría de los casos, un servicio "Web 2.0" con el que te encuentres hoy probablemente use REST.

Cómo crear una API REST en PHP con la clave de autenticación para eliminar un valor de la base de datos?

Digamos que tenemos una clase PHP (manage.php) que nos ayuda a gestionar entradas en una base de datos:

class manage { private $entryId; function __construct($entryId) { 
     $this->entryId = $entryId; 
    } function deleteEntry() { 
     //delete $this->entryId from database 
    }} 

En nuestro propio servidor, podríamos tener acceso a esta funcionalidad, así:

require_once('manage.php'); 
$m = new manage(23); 
$m->deleteEntry(); 

Lo suficientemente fácil para nosotros, pero ¿cómo permitimos que alguien que no está en nuestro servidor acceda a la misma funcionalidad? Para eso, crearemos un tercer archivo para actuar como un búfer (o "interfaz") entre otros desarrolladores y nuestra clase. He aquí un ejemplo de un archivo que podríamos crear para permitir a los desarrolladores acceder a la función de borrado de nuestra clase, vamos a situarlo al 'api/delete.php'

require_once('manage.php'); 
if(hasPermission($_POST['api_key']) { 
    $m = new manage($_POST['entry_id']); 
    $m->deleteEntry(); 
} 

Esto permitirá a los usuarios enviar una solicitud POST a nosotros en http://example.com/api/delete.php con una api_key y un entry_id. Notarás que la función es muy similar a la que escribimos en nuestro propio servidor, excepto que verificamos la variable POST api_key usando una función para ver si está autorizada para acceder a la base de datos. No incluimos esa función aquí (tienePermission) por simplicidad. Además de lo que se muestra, también deberá encontrar la cuenta del usuario basada en api_key, realizar una comprobación de errores y (si desea crear una buena API) proporcionar una respuesta correcta de éxito o error después de la solicitud. Entraremos en las respuestas de éxito y error en un momento.

Cómo diseñar una buena API y por qué es importante?

Supongo que este video de Google puede explicar mucho mejor que yo ... http://youtu.be/aAb7hSCtvGw ..

Referencias:

http://en.wikipedia.org/wiki/Representational_state_transfer

http://en.wikipedia.org/wiki/SOAP

http://particletree.com/features/how-to-add-an-api-to-your-web-service/

http://www.webresourcesdepot.com/how-to-create-an-api-10-tutorials/

Google Search Result

Nota: La respuesta es la compilación de todas las referencias !!.

+5

Aunque fue copy paste, respondió y ayudó a alguien que no encontró esto en línea. –

+0

Encontré esto, no la otra referencia, así que ha alcanzado su objetivo. +1 seguro – mok

Cuestiones relacionadas