Guía de la API HTTP de HTTP y WordPress
En la Parte 1 de esta guía, conseguí una descripción general de la Interfaz de programación de aplicaciones HTTP. Aprendimos qué es HTTP, analizamos la composición de las peticiones y respuestas HTTP, y de qué manera se combinan las funciones y las URL para determinar qué obtiene a cambio de su petición. En este artículo, examinamos la API HTTP de WordPress.
API HTTP de WordPress
WordPress tuvo una API para conducir HTTP desde la versión 2.7. Se compone de 9 funciones, de las que solo puede usar algunas. Estas funcionalidades se tienen la posibilidad de dividir en dos conjuntos diferentes: uno para consultas y otro para leer resultados.
wp_remote_get()
, wp_remote_post()
, wp_remote_head()
Utilice los métodos GET, POST y HEAD para solicitar información de una dirección de Internet específica wp_remote_request()
es una función general que le deja concretar una dirección de Internet y un procedimiento.
La función de leer la respuesta también es visible. wp_remote_retrieve_body()
Consiga el artículo de la contestación, wp_remote_retrieve_header()
La función recibe un título con nombre wp_remote_retrieve_headers()
La función devuelve todos los encabezados de matriz, wp_remote_retrieve_response_code()
Dése el código de respuesta y wp_remote_retrieve_response_message()
Se devuelve el mensaje de contestación.
De eso se habla básicamente. Solo debemos saber cómo se determinan los encabezados para efectuar la solicitud correcta.
Realizar una petición
Usó wp_remote_get()
Función para efectuar una solicitud. Empleamos el primer parámetro para establecer la URL y el segundo parámetro para añadir los factores. Puede hallar todos y cada uno de los parámetros admitidos por Codex, y aquí me centraré en la información del encabezado.
Para recibir mensajes de estado de usuario de Twitter, debe statuses/user_timeline.json
Junto a la carretera https://api.twitter.com/1.1
Transferencia de URL y dominio para autenticación: anteriormente creé que la identificación del propietario debe agregarse como un encabezado de autorización en el formulario a continuación Bearer [TOKEN]
.
$token = 'Sijbwrf82wdaBief';
$response = wp_remote_get('https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=kinsta', array(
'headers' => array(
'Authorization' => 'Bearer ' . $token
),
));
Mandar esta solicitud te va a dar mucha información para imprimir. $response
Variable. También puedes utilizar wp_remote_retrieve
Ingrese una función para obtener parte de la respuesta.
En la mayoría de las situaciones, el texto tiene dentro la información requerida, por norma general en formato JSON. En PHP solo tenemos la posibilidad de convertirlo en una tabla:
$data = json_decode( $response['body'], true )
Utiliza la Interfaz de programación de aplicaciones de Github
Cree un caso de muestra veloz de una lista de nuestro último archivo de Github en el widget de WordPress. Primero debe iniciar sesión en Github y también ir a su perfil, editarlo e proceder a "Identificación personal" donde puede registrarse.
A continuación, crearemos una plantilla de widget en blanco. Este widget tiene 2 opciones: un espacio para añadir una etiqueta API y un título. Esta no es la mejor forma pues su identificación está guardada en una base de datos, pero para nuestros propósitos de ejemplo, es buena.
class My_Github_Widget extends WP_Widget
public function __construct()
parent::__construct(
'my_github_widget',
'My Github Repos',
array( 'description' => 'A widget that showcases your Github repos' )
);
public function widget( $args, $instance )
// Widget output
public function form( $instance )
$token = ! empty( $instance['token'] ) ? $instance['token'] : '';
$title = ! empty( $instance['title'] ) ? $instance['title'] : 'From Github';
?>
No quiero hablar mucho sobre cómo se crean los widgets aquí. Para obtener más información, lea la Guía de widgets del Codex, lo importante es widget()
El método imprime el contenido de nuestro widget. En esta operación, nos conectamos a Github a través de una solicitud HTTP y formateamos e imprimimos la respuesta. Aquí le mostramos cómo: ingrese todos los códigos siguientes widget()
Método.
echo $args['before_widget'];
if ( ! empty( $instance['title'] ) )
echo $args['before_title'] . apply_filters( 'widget_title', $instance['title'] ). $args['after_title'];
$args = array(
'headers' => array(
'Accept' => 'application/vnd.github.v3+json',
'Authorization' => 'token 3f4f654ab31c2f15y también839c74c952e5de2f562f1ee'
)
);
$response = wp_remote_get( 'https://api.github.com/usuario/repos', $args );
$repos = json_decode( $response['body'], true );
if( !empty( $repos ) )
echo '';
foreach( $repos as $repo )
echo '- ' . $repo['name'] . '
';
echo '
';
echo $args['after_widget'];
Primero añade el elemento de compresión del widget y el título en la parte de arriba y finalmente cierra la compresión del widget. La mayor parte del código está en algún punto intermedio.
Primero especifico los encabezados de solicitud HTTP. La primera pregunta puede ser: ¿Cómo sé los parámetros que debo agregar? Authorization
El título es el punto más importante y lo leí en la sección Autenticación de la documentación de la API.
los Accept
No se requiere un título, pero se le pedirá que lo dé en la parte superior de la misma página del documento en la guía del usuario.
Entonces uso json_decode()
Cree una lista vinculada en la parte de contestación y sencillamente repita la matriz de desenlaces.
Próximo paso
Si cree que es fácil, tiene toda la razón, ¡entonces lo es! Lo bien difícil es cerciorarse de que todos los rincones estén cubiertos sin desaprovechar recursos. Hay 2 problemas en el código que requieren atención inmediata.
Los inconvenientes de API, incluidos errores desconocidos, cuentas que devengan intereses, etc., pueden ocasionar errores importantes. Solo verificamos que el marco esté vacío antes de enseñar la lista.
Si sucede un error, el cuerpo probablemente contenga un mensaje de fallo, con lo que en este caso no está vacío, probablemente leeremos los elementos de la respuesta de fallo, pero dado que estos elementos no son url
y name
Atributo, conseguimos elementos de lista vacíos y observaciones de PHP.
Otro problema es que o sea solo un desperdicio. Nos conectamos a un servicio de afuera toda vez que cargamos una página, lo que puede perjudicar a los servidores y dar sitio a la restricción de la cuenta en Github. Aun si ese no es el caso, ¿qué tan posible es que su lista de repositorio de Github cambie entre páginas vistas y qué tan esencial es obtener otra información aquí?
Personalmente recomiendo emplear Transient en esta situación. Transient le permite guardar una contestación a una solicitud en el instante de la expiración. Si establece un tiempo de vencimiento de un día, los datos se recuperarán una vez de Github y luego de manera directa de su banco de información a lo largo de las próximas 24 horas. Cuando caduca, se está recuperando de Github y se almacena en una base de datos.
Esto disminuye las llamadas a la Interfaz de programación de aplicaciones de una carga de página una vez al día, lo cual es una gran mejora sin mayores compromisos.
resumen
WordPress puede interactuar de forma fácil con las API web. Con una sucesión de funcionalidades incorporadas, puede obtener información mucho más rica y importante para sus usuarios.
Al conjuntar los mecanismos de limpieza, depuración y almacenamiento en caché, puede hacer una app poderosa que no solo es más útil sino que consume menos recursos de lo que cree.
Si utiliza la API HTTP de WordPress para conectar WordPress a API de terceros, háganoslo comprender, ¡estoy entusiasmado con su trabajo!
Ahorre tiempo, dinero y maximice el rendimiento del lugar:
- Asistencia inmediata de expertos en hosting de WordPress, 24 horas cada día, 7 días por semana.
- Integración de Cloudflare.
- La audiencia global incluye 28 centros de datos en todo el mundo.
- Utilice la supervisión integrada del rendimiento de las apps para optimizar.
Todo lo mencionado y mucho más en un solo plan sin contratos a largo plazo, asistencia de inmigración y una garantía de devolución de dinero de 30 días. Consulte los planes o hable con un gerente de ventas para localizar un plan que funcione para usted.
Deja una respuesta