Si va a un Campamento de Word y pasa algún tiempo con los desarrolladores, es difícil no notar el entusiasmo en torno a la nueva API de WordPress. El equipo REST API acaba de lanzar la versión 1.2 del complemento, que desarrolla continuamente para combinarlo en el núcleo de WordPress. Es un gran proyecto, mucho más grande que Ryan McCue, quien, junto con Rachel Baker, dirige el proyecto, alguna vez pensó que sería. Recientemente hablé con Ryan sobre los desafíos de un proyecto tan grande y sobre las complejidades en la creación de una “API universal” para cada sitio de WordPress, así como sobre los planes básicos de fusión.
Versión 1.2 y compatibilidad inversa La versión 1.2 del complemento es la última versión principal planificada del resto como complemento. El equipo ahora se centra en la versión 2. Desde el lanzamiento de la versión 1, Ryan lo ha comprometido a apoyarlo y garantizar la compatibilidad con la versión anterior, algo para lo que él y el equipo REST API todavía están comprometidos. La versión 2, el código que se unirá en el núcleo de WordPress, no será completamente compatible con la versión 1, sin embargo, el complemento continuará como una capa de compatibilidad inversa. De esta manera, cualquier cosa desarrollada usando la versión del complemento, siempre que el complemento esté activo, funcionará una vez que el resto esté en el núcleo.
“No entramos y recreamos esto desde cero y ciertamente no destruye las cosas a menos que lo necesitemos, por lo que portar cosas de la versión 1 a la versión 2 será simple”, dijo Ryan en una entrevista. En la versión 2, todas las rutas ahora estarán prefijadas. Core usará un prefijo “WP” y todas las rutas personalizadas tendrán su propio prefijo. Además, el prefijo “WP-JSON” que se usa actualmente para todas las rutas puede desaparecer por completo. Los sitios que usan el complemento, por supuesto, recibirán las rutas WP-JSON más antiguas a las nuevas rutas una vez que estén en el núcleo. “La idea es que en el exterior, para cualquiera que use el complemento, nuestra capa de compatibilidad hará que se vea exactamente para cualquiera que use la versión 1.2. Entonces, la versión 1.2 es un punto fijo a este respecto “, dijo Ryan …” Pero internamente, en realidad usará la versión 2 y la infraestructura básica … por lo que el código escrito para la versión 1 puede beneficiarse automáticamente de cualquier remedios de errores. Aparece … y todavía tenemos mantenimiento de seguridad … y no tenemos que aceptar dos versiones “.
Fusión básica: posible en dos fases, Ryan espera tener una versión utilizable de la versión 2 en el “próximo mes” que se lanzará como beta. La versión beta 2 se utilizará como una propuesta de fusión para el núcleo y, idealmente, se fusionará en el núcleo en 2015. La base del código API está, esencialmente, dividida en dos partes: la primera es la infraestructura para crear un descanso. El otro lado son los puntos finales predeterminados que ofrecen. La infraestructura puede ingresar primero el núcleo y luego los puntos finales se agregan en una fecha posterior. Si esto sucede, la infraestructura se etiquetará inicialmente como una API experimental. Esto imitaría cómo la API del corazón se introdujo lentamente en el núcleo, en más de una versión. Le pregunté a Ryan sobre el desafío de hacer una “API universal” que se incluyera en tantos sitios. Dijo que el mayor desafío es equilibrar todas las preocupaciones diferentes. Agregar los puntos predeterminados finales al núcleo tiene una gran complejidad para garantizar la existencia de los datos correctos, y equilibrar las preocupaciones variadas y a veces competitivas es un desafío importante. Es por eso que tardó más de lo esperado en ser corregido. Él ve dos casos principales de uso de la API, los cuales tienen necesidades de conflicto.
El primer caso de uso es lo que él llama “desarrolladores de servicios”. Un ejemplo de este tipo de usuario es una organización de noticias que desea crear una aplicación basada en el sitio web que proporciona datos de API como servicio de aplicación. Es más probable que estos usuarios usen puntos finales personalizados. Entonces, para ellos, la infraestructura es más importante que los puntos finales finales en sí mismos. Un buen ejemplo es la revista Wired. Wired ha reemplazado recientemente varias instalaciones de WordPress de instalación única, conectadas a varios frontales a través de la API REST. La parte favorita de Ryan sobre este proyecto es que la API REST permitirá a los desarrolladores elegir su propio modo de trabajo con WordPress. Los desarrolladores ya no tendrán que usar un tema tradicionalmente. Pueden usar datos JSON de todos modos. “Este es uno de los casos de uso que realmente me gustan”, dijo Ryan. “El hecho de que alguien que no conozca a WordPress pueda comenzar a crear sitios web front y con esto … extiende cuántas personas pueden usar y desarrollar para WordPress”.
El otro caso de uso que Ryan predice son las aplicaciones móviles de WordPress. Para estos casos, el propósito es hacer que la API funcione “consistentemente en cada sitio existente”. Este uso lleva a una espera imposible de que se proporcionen los mismos datos en cada sitio. “Algunos de estos problemas no quieren tratar de manejarlos porque hay demasiados allí”, dijo Ryan. “El reverso de todas estas cosas es que, incluso si sabemos que los sitios tienen los mismos datos, es posible que no tenga los mismos campos … tratamos de encontrar el mejor equilibrio … entre la flexibilidad que tenemos para ofrecer los desarrolladores de arado.. y la rigor de los clientes necesita ”. El campo de expandir constantemente la API de Ryan ha trabajado en WordPress REST API durante mucho tiempo. Para darle una idea de cuán preciso, cuando comenzó, pensó que podría incluirse en WordPress 3.6. El período de tiempo más largo para este proyecto que inicialmente previsto no es solo porque subestimó el volumen de trabajo, sino porque el alcance del proyecto ha aumentado mucho.
Inicialmente, vio el descanso de la API como “solo una forma de alcanzar los datos básicos en WordPress y no mucho más que eso”. Parte del código en la primera edición, que fue muy minimalista y manejó una cantidad mucho menor de datos, todavía existe hoy.

El límite solo para los cuatro objetos básicos (publicaciones, usuarios, taxonomías y metadatos) se ha establecido temprano, una vez que el proyecto ha aumentado. Esto es limitante, pero configura la API restante una vez que está en el núcleo cubrir las opciones y otros tipos de datos. Como toda WordPress, la API REST está diseñada para ser extensible. La infraestructura para administrar el resto de los tipos de datos o para hacer lo que desee para desarrollar el desarrollador está allí. “La infraestructura de la API en sí misma, admite prácticamente cualquier cosa que pueda arrojarle. Si elimina los puntos finales básicos, es esencialmente un marco para la construcción de API y puede construirlos como desee “, dijo Ryan. En su mente, el mayor concepto erróneo sobre el proyecto de API REST es que la gente” lo verá. como una bala mágica que resuelve todos estos problemas “. Por ejemplo, administrar respuestas genéricas. Una aplicación móvil no puede administrar automáticamente cada respuesta que cualquier sitio de WordPress podrá enviar. Resolver el problema de una API genérica no se ha resuelto y la API REST WordPress no resolverá este problema. “Queremos ofrecer esta flexibilidad a los desarrolladores de arado”, dijo Ryan, “los desarrolladores de complementos deben comprender que, debido a su flexibilidad, deben tener en cuenta tales cosas y es difícil transmitir esto, especialmente para los servicios. Sitios … trate de transmitir a las personas que pueden eliminar los puntos finales, pero deben ser conscientes de que esto destruirá. Agregar datos a una respuesta será más fácil de hacer, porque no es un gran problema para los clientes, pero será más difícil eliminar los datos esperados por un cliente “.


En la API REST WordPress: Reflexión sobre el pasado y mira hacia el futuro
Tags En API
homefinance blog