Nuestro cliente me había dado una API REST a la que necesito hacer una llamada PHP. Pero, de hecho, la documentación proporcionada con la API es muy limitada, por lo que no sé cómo llamar al servicio.
Intenté buscarlo en Google, pero lo único que surgió fue un Yahoo! tutorial sobre cómo llamar al servicio. Sin mencionar los encabezados ni nada de información detallada.
¿Hay alguna información decente sobre cómo llamar a una API REST, o alguna documentación al respecto? Porque incluso en W3schools, solo describen el método SOAP. ¿Cuáles son las diferentes opciones para hacer API de descanso en PHP?
fuente
$data
es una matriz asociativa (datos [nombre del campo] = valor) que contiene los datos enviados al método api.curl_close
cuenta que no se llama a la función, lo que podría causar un consumo de memoria adicional si se llama repetidamente a la función CallAPI.Si tiene una URL y su php la admite, puede llamar a file_get_contents:
si $ response es JSON, use json_decode para convertirlo en una matriz php:
si $ response es XML, use la clase simple_xml:
http://sg2.php.net/manual/en/simplexml.examples-basic.php
fuente
file_get_contents
función falla con una advertencia y devuelve nulo. Si el cuerpo contiene un mensaje de error, no puede recuperarlo.Utiliza Guzzle . Es un "cliente HTTP HTTP que facilita el trabajo con HTTP / 1.1 y elimina el dolor de consumir servicios web". Trabajar con Guzzle es mucho más fácil que trabajar con cURL.
Aquí hay un ejemplo del sitio web:
fuente
CURL es el camino más sencillo. Aquí hay una simple llamada
fuente
Utilice HTTPFUL
Httpful es una biblioteca PHP simple, encadenable y legible destinada a hacer que hablar HTTP sea sensato. Le permite al desarrollador concentrarse en interactuar con las API en lugar de examinar las páginas curl set_opt y es un cliente PHP REST ideal.
Httpful incluye ...
Ex.
Enviar una solicitud GET. Obtenga una respuesta JSON analizada automáticamente.
La biblioteca nota el tipo de contenido JSON en la respuesta y analiza automáticamente la respuesta en un objeto PHP nativo.
fuente
$condition = $response->weather[0]->main;
menos que solo esté haciendo mal el lado PHPTendrá que saber si la API REST que está llamando soportes
GET
oPOST
, o ambos métodos. El código a continuación es algo que funciona para mí, estoy llamando a mi propia API de servicio web, por lo que ya sé qué toma la API y qué devolverá. Es compatible con ambosGET
y con losPOST
métodos, por lo que la información menos sensible entra en elURL (GET)
, y la información como nombre de usuario y contraseña se envía comoPOST
variables. Además, todo pasa por laHTTPS
conexión.Dentro del código API, codifico una matriz que quiero devolver al formato json, luego simplemente uso el comando PHP
echo $my_json_variable
para que esa cadena json esté disponible para el cliente.Como puede ver, mi API devuelve datos json, pero necesita saber (o mirar los datos devueltos para averiguar) en qué formato está la respuesta de la API.
Así es como me conecto a la API desde el lado del cliente:
Por cierto, también traté de usar el
file_get_contents()
método que sugirieron algunos de los usuarios aquí, pero eso no funciona bien para mí. Descubrí que elcurl
método es más rápido y más confiable.fuente
Hay muchos clientes en realidad. Uno de ellos es Pest . Mira esto. Y tenga en cuenta que estas llamadas REST son simples solicitudes HTTP con varios métodos: GET, POST, PUT y DELETE.
fuente
Puede usar
file_get_contents
para emitir cualquierPOST/PUT/DELETE/OPTIONS/HEAD
método http , además delGET
método como sugiere el nombre de la función.¿Cómo publicar datos en PHP usando file_get_contents?
fuente
Si está utilizando Symfony, hay un excelente paquete de cliente de descanso que incluso incluye todas las ~ 100 excepciones y las arroja en lugar de devolver algún código de error + mensaje sin sentido.
Realmente deberías verificarlo: https://github.com/CircleOfNice/CiRestClientBundle
Amo la interfaz:
Funciona para todos los métodos http.
fuente
como @Christoph Winkler mencionó que esta es una clase base para lograrlo:
curl_helper.php
Entonces siempre puede incluir el archivo y usarlo, por ejemplo: any.php
fuente
Si está abierto a usar herramientas de terceros, eche un vistazo a esta: https://github.com/CircleOfNice/DoctrineRestDriver
Esta es una forma completamente nueva de trabajar con API.
En primer lugar, define una entidad que define la estructura de los datos entrantes y salientes y los anota con fuentes de datos:
Ahora es bastante fácil comunicarse con la API REST:
fuente
Puede utilizar POSTMAN, una aplicación que facilita las API. Rellene los campos de solicitud y luego generará código para usted en diferentes idiomas. Simplemente haga clic en el código en el lado derecho y seleccione su idioma preferido.
fuente