Proveer un servicio HTTP mediante un plugin de WordPress

14 oct 2016, 07:17:25
Vistas: 60
Votos: 0

Esta publicación es la original en https://stackoverflow.com/q/40018619/306719, pero no recibió atención, y encontré este sitio, así que creo que quizás sea el lugar adecuado, y solicitaré una redirección para la publicación original.


Quiero proporcionar un servicio basado en HTTP para insertar nuevos posts con información adicional, creo que un plugin de WordPress podría ser la solución adecuada.

Sin embargo, no estoy seguro de cómo comenzar incluso después de leer la referencia de plugins de WordPress.

Creo que debería haber alguna acción como request_recieve donde pueda registrarme para interceptar la solicitud y hacer mi propio trabajo, pero no puedo encontrar eso. También cómo evitar bloquear las solicitudes normales de WordPress.

6
Comentarios

¿servicio basado en http? Tal vez puedas probar la API REST de WP.

bravokeyl bravokeyl
14 oct 2016 07:21:02

Wordpress proporciona HTTP_API. Échale un vistazo.

AddWeb Solution Pvt Ltd AddWeb Solution Pvt Ltd
14 oct 2016 07:24:04

@bravokeyl: La API REST no cumple con mis requisitos. Cuando recibo una solicitud, no solo debo validarla/insertarla en la base de datos, sino que también tendré que hacer un trabajo adicional. Y devolver una respuesta diferente al cliente.

hguser hguser
14 oct 2016 07:32:35

@AddWebSolutionPvtLtd: No voy a enviar una solicitud http desde WordPress, sino recibir la solicitud.

hguser hguser
14 oct 2016 07:33:20

@hguser: HTTP_API, se trata de transportes http (es decir, enviar, recuperar) no solo enviar. Espero que hayas revisado la sección de Funciones Auxiliares del enlace HTTP_API proporcionado.

AddWeb Solution Pvt Ltd AddWeb Solution Pvt Ltd
14 oct 2016 07:43:27

@AddWebSolutionPvtLtd: Lo revisé nuevamente, y parece que el HTTP_API se puede usar para hacer que WordPress funcione como un cliente, mientras que lo que necesito es hacer que WordPress funcione como un servidor con endpoints adicionales que manejarán las solicitudes del cliente. Algo como el WP rest api

hguser hguser
14 oct 2016 09:01:25
Mostrar los 1 comentarios restantes
Todas las respuestas a la pregunta 1
0

Ahora uso el hook init para agregar mi propio proceso para la solicitud, y luego verifico si la solicitud debe ser manejada por el plugin. Si es así, la proceso y salgo; si no, no hago nada. Así:

add_action('init',function(){
  if(should_intercepte_the_request()){
    //procesar eso
    //salir
    die("foo");
  }else{
    //no hacer nada
  }
});

Luego puedes acceder a la URL con: http://localhost

Se recomienda que verifiques el método de solicitud y algún token de acceso para asegurarte de que las solicitudes provienen de una fuente confiable.

18 oct 2016 05:26:08