REST API
Nuestra API REST ofrece una forma sencilla de interactuar con Potter DB, de acuerdo con las especificaciones JSON:API y OAS. En esta sección, vamos a cubrir los aspectos clave del uso de la API REST, incluyendo los endpoints disponibles y cómo dar formato a tus peticiones y respuestas.
Endpoints disponibles
Para acceder a los datos de la API REST, debe realizar una solicitud GET a uno de los siguientes puntos finales:
Expanda para ver todos los endpoints
Books
/v1/books: Recupera una lista de libros./v1/books/{id}: Recupera un solo libro por su ID./v1/books/{book_id}/chapters: Recuperar una lista de capÃtulos de un libro determinado./v1/books/{book_id}/chapters/{id}: Recuperar un capÃtulo de un libro por su ID.
Characters
/v1/characters: Recupera una lista de personajes./v1/characters/{id}: Recuperar un único personaje por su ID.
Movies
/v1/movies: Recupera una lista de pelÃculas./v1/movies/{id}: Recupera una sola pelÃcula por su ID.
Potions
/v1/potions: Recupera una lista de pociones./v1/potions/{id}: Recupera una sola poción por su ID.
Spells
/v1/spells: Recupera una lista de hechizos./v1/spells/{id}: Recupera un solo hechizo por su ID.
Los ID deben proporcionarse como UUID o slugs.
Especificaciones OpenAPI (OAS)
Para facilitar la integración, proporcionamos un documento OpenAPI Specification (opens in a new tab) que describe los puntos finales de la API, los modelos de datos y los esquemas de solicitud/respuesta. La API se ajusta a la versión 3.0.3 de la especificación OAS. Puede encontrar nuestro documento OAS actual aquà (opens in a new tab).
Formato JSON:API
Nuestra API REST se adhiere a la especificación JSON:API (opens in a new tab), que proporciona una forma coherente de estructurar las solicitudes y respuestas de la API. He aquà un resumen de las principales caracterÃsticas de JSON:API en el contexto de nuestra API:
- Objetos de recursos: Cada recurso se representa como un objeto con un
tipo,idyatributos. - Relaciones: Los recursos pueden estar relacionados con otros recursos, por ejemplo, un recurso "libro" está relacionado con recursos "capÃtulo" y viceversa.
- Paginación: Cuando una respuesta contiene un gran número de recursos, la respuesta se paginará. Consulte Paginación para obtener más información.
- Errores: Los errores se devuelven con estructuras estandarizadas, lo que facilita la gestión y resolución de problemas.
Realizar peticiones
Para realizar una solicitud a la API REST, debe realizar una solicitud GET a uno de nuestros endpoints disponibles.
He aquà un ejemplo básico de cómo recuperar una lista de personajes utilizando el endpoint /characters:
GET https://api.potterdb.com/v1/charactersConsulte el documento "OpenAPI Specification" para obtener información detallada.
Paginación
Las respuestas con un gran número de recursos se paginarán. La respuesta incluirá un objeto links con enlaces first, last, prev y next a la primera, última, anterior y siguiente página de resultados respectivamente.
Para cambiar la cantidad de recursos por página, puede utilizar el parámetro de consulta page[size] (el tamaño máximo es 100):
GET https://api.potterdb.com/v1/characters?page[size]=25Para cambiar la página actual, puede utilizar el parámetro de consulta page[number]:
GET https://api.potterdb.com/v1/characters?page[number]=2Ransack
Nuestra API REST admite el filtrado y la clasificación avanzados mediante Ransack (opens in a new tab).
Filtrado
Puede filtrar recursos añadiendo un parámetro de consulta filter a su petición. Por ejemplo, para filtrar caracteres por nombre, puede utilizar el predicado name_cont:
GET https://api.potterdb.com/v1/characters?filter[name_cont]=WeasleyEsto devolverá todos los personajes con el nombre "Weasley".
Ampliar para ver todos los filtros predicados disponibles
eq: igual aeq_any: igual a cualquiereq_all: igual a todosnot_eq: no es igual anot_eq_any: no es igual a cualquiernot_eq_all: no es igual a todosmatches: coincide conmatches_any: coincide con cualquiermatches_all: coincide con todosdoes_not_match: no coincide condoes_not_match_any: no coincide con cualquierdoes_not_match_all: no coincide con todoslt: menos quelt_any: menos que cualquierlt_all: menos que todoslteq: menos que o igual alteq_any: menos que o igual a cualquierlteq_all: menos que o igual a todosgt: mayor quegt_any: mayor que cualquiergt_all: mayor que todosgteq: mayor que o igual agteq_any: mayor que o igual a cualquiergteq_all: mayor que o igual a todosin: enin_any: en cualquierin_all: en todosnot_in: no ennot_in_any: no en cualquiernot_in_all: no en todoscont: contienecont_any: contiene cualquiercont_all: contiene todosnot_cont: no contienenot_cont_any: no contiene cualquiernot_cont_all: no contiene todosstart: comienza constart_any: comienza con cualquierstart_all: comienza con todosnot_start: no comienza connot_start_any: no comienza con cualquiernot_start_all: no comienza con todosend: termina conend_any: termina con cualquierend_all: termina con todosnot_end: no termina connot_end_any: no termina con cualquiernot_end_all: no termina con todos'true': es verdadero'false': es falsopresent: está presenteblank: está en blanco'null': es nulonot_null: no es nulo
Ordenar
Puede ordenar los recursos añadiendo un parámetro de consulta sort a su petición. Por ejemplo, para ordenar caracteres por nombre, puede utilizar el atributo name (vaya a Recursos para ver todos los atributos disponibles):
GET https://api.potterdb.com/v1/characters?sort=nameUtilice el prefijo - para ordenar en orden descendente.