API Rest¶
El punto final api/v2/resources proporciona diferentes formas de manejar los metadatos.
CONSEGUIR:
Obtener la lista de metadatos del recurso seleccionado
URL: http://host/api/v2/resources/{resource_id}/extra_metadata
Response:
[
{
"id": 1,
"field_name": "bike",
"field_label": "KTM",
"field_value": "ktm",
"filter_header": "Sports Parameters"
}
]
CORREO:
Agregar nuevos metadatos al recurso
URL: http://host/api/v2/resources/{resource_id}/extra_metadata
data = [
{
"field_name": "bike",
"field_label": "KTM",
"field_value": "ktm",
"filter_header": "Sports Parameters"
}
]
Response:
status_code: 201
response json: List of the available metadata for the resource
[
{
"id": 1,
"field_name": "bike",
"field_label": "KTM",
"field_value": "ktm",
"filter_header": "Sports Parameters"
}
]
PONER:
Actualice metadatos específicos para el recurso seleccionado.En este caso, se requiere el ID de metadatos para realizar la actualización.
http://host/api/v2/resources/{resource_id}/extra_metadata
payload:
[
{
"id": 1,
"field_name": "bike",
"field_label": "KTM - sport", <- this value need to be updated
"field_value": "ktm",
"filter_header": "Sports Parameters"
}
]
Response:
status_code: 200
response: the available payload for the selected resource
[
{
"id": 1,
"field_name": "bike",
"field_label": "KTM - sport",
"field_value": "ktm",
"filter_header": "Sports Parameters"
}
]
BORRAR:
Elimine los metadatos de un recurso determinado por ID.
http://host/api/v2/resources/{resource_id}/extra_metadata
payload: list of ID to be deleted
[
1, 2, 3, 4, 5
]
Response:
status_code: 200
response: List of the available metadata
[]
Búsqueda API
Es posible buscar recursos con metadatos específicos.Esta función está disponible tanto para API v1 como para API v2.
APIv1:
Para realizar la búsqueda basta con agregar como parámetro de consulta el campo de la carga útil de metadatos.
Suponiendo que la carga útil es la misma que en el ejemplo anterior, la URL podría ser similar a la siguiente:
http://host/api/base/?metadata__field_category=bicicleta
De esta forma podremos recuperar todos los recursos que tengan al menos 1 metadato con el field_category=”bike”
APIv2
Para la API v2 es un poco diferente ya que la biblioteca no admite el campo JSON.
Para reproducir la misma búsqueda anterior, necesitamos llamar a una URL como la siguiente:
http://localhost:8000/api/v2/resources?filter{metadata.metadata.icontains}=%22field_category%22:%20%22bike%22
De esta forma podremos recuperar todos los recursos que tengan al menos 1 metadato con el field_category=”bike”