Rest API: Funcionamiento de los alérgenos
tspoonlab dispone al crear la cuenta una lista de los 14 alérgenos oficiales según la normativa en vigor en la unión europea. El usuario puede además crear nuevos alérgenos para poder realizar una gestión más detallada.
Los alérgenos se asignan a los ingredientes/productos. Dicha asignación la debemos realizar en base a las fichas técnicas que nos proporciona el proveedor y que es necesario archivar para cumplir con los requerimientos de sanidad. En dicha asignación podemos indicar si se trata de un alérgeno o de una traza.
Las recetas/elaboraciones intermedias y los platos/elaboraciones finales muestran en todo momento los alérgenos fruto del recálculo basado en sus ingredientes. En caso que un mismo alérgeno aparezca como traza y alérgeno en dos ingredientes distintos se asignará directamente el alérgeno.
En determinados casos también nos puede interesar asignar trazas a nuestros productos finales o intermedios en base a otras producciones que realizamos en la misma partida/instalaciones. Es habitual en aquellos entornos donde se trabaja con harina o frutos secos el asignar estas trazas al resto de productos.
Rest API : Login
Para poder hacer llamadas a nuestras API'S lo primero que necesitamos es identificarnos mediante una llamada de login.
Esa llamada nos retornará una token que después debemos asociar en cada llamada posterior.
Este shell script muestra como autenticarnos mediante curl:
[email protected]
password=XXXXXXX
url=https://www.tspoonlab.com/recipes/api
authenticate='username='$username'&password='$password
echo -n 'rememberme:' > rememberme.txt
curl -v --data $authenticate $url/login >> rememberme.txt
En las llamadas posteriores debemos añadir a nuestros headers el token recibido de la llamada de login
curl -X PUT -v -H "$(cat rememberme.txt)" $url/integration/llamada
Rest API : Seleccionar un centro de coste/restaurante
Las peticiones que se describen en los apartados siguientes hacen referencia a un centro de coste, en la mayoría de los casos se correspondería con un restaurante.
Para recuperar la lista de centros de costes y sus identificadores consulta el artículo Rest API: Centros de coste.
El identificador de centro de coste se corresponde al campo idOrderCenter de la clase UserOrderCenter.
Una vez tenemos el identificador este deberá añadirse a los headers para que sea utilizado en llamadas posteriores:
echo -n 'order:351583444167656299610202XXXXXXXXXXXX' >> rememberme.txt
Por tanto en nuestros request headers debemos especificar tanto el token devuelto por el login como el identificador del centro de coste:
rememberme:aGVucnkudXBzYWxsLmRAZXXXXXXXXXXXXXXXXXX
order:351583444167656299610202XXXXXXXXXXXX
Rest API : Recuperar la lista de alérgenos
Para recuperar la lista debemos realizar esta llamada:
GET:
https://www.tspoonlab.com/recipes/api/listAllergiesPaged?filter=&rows=50&start=0
El parámetro filter nos permite filtrar por descripción, rows es el número de filas que queremos obtener y start la primera fila a devolver.
La petición nos devuelve un array con el id y descripción de cada alérgeno:
[
{
id:"194443382822263016755563050734447984070",
descr:"Altramuces"
},
{
id:"181691964862034253332266321442051901807",
descr:"Apio"
}
....
]
Rest API : Recuperar un alérgeno
Para obtener los datos debemos utilizar el id conseguido en la petición anterior y realizar esta llamada:
GET:
https://www.tspoonlab.com/recipes/api/allergy/{idAllergy}/components/num/{numChild}
El parámetro idAllergy nos indica la alergia a recuperar.
La información retornada incluye también que productos base (ingredientes) y qué productos elaborados tienen esa alergia. El parámetro numChild indica cuántos productos que tienen ese alérgeno queremos retornar en la petición.
class Allergy {
String id;
String descr;
String comment;
List<AllergyComponent> listComponentBase;
List<AllergyComponent> listComponentComplex;
}
class AllergyComponent {
String id;
String descr;
String idComponent;
boolean traces;
private int type;
private Long color;
}
En AllergyComponent el id identifica la relación entre un alérgeno y un componente.
El idComponent nos indica el componente al que está vinculado éste alérgeno, descr es el nombre del componente y el campo traces nos indica si se trata de un alérgeno o de una traza.
el campo type indica que tipo de producto es:
0 para ingredientes / productos
1 para recetas / elaboraciones intermedias
2 para materiales / herramientas
3 para platos / elaboraciones finales
En el caso de los ingredientes/productos color indica el color asignado al mismo.
Si para ésta alergia queremos recuperar más productos base o productos elaborados debemos llamar a:
GET https://www.tspoonlab.com/recipes/api/allergy/{idAllergy}/base/{isBase}/components/paged?filter=&rows=20&start=20
Donde los parámetros filter, rows y start siguen los criterios que ya hemos explicado. idAllergy es el identificador del alérgeno y isBase nos indica si queremos recuperar producto base o producto elaborado (toma los valores true, false).
Retorna una lista de AllergyComponent.
Rest API : Crear un alérgeno
Para crear un alérgeno debemos llamar a:
POST https://www.tspoonlab.com/recipes/api/allergy
Pasando en el request body:
class NewAllergy {
String descr;
String comment;
}
descr y comment son la descripción y comentario del alérgeno.
Rest API : Modificar un alérgeno
Para modificar un alérgeno debemos llamar a:
PUT https://www.tspoonlab.com/recipes/api/allergy/{idAllergy}
Pasando en el request body:
class NewAllergy {
String descr;
String comment;
}
Rest API : Eliminar un alérgeno
Para eliminar un alérgeno debemos llamar a:
DELETE https://www.tspoonlab.com/recipes/api/allergy/{idAllergy}
La alergia se borrará de todos los productos base que la tengan asignada (como alérgeno o como traza) y de todos aquellos productos elaborados que utilizen ese ingrediente.
Rest API : Asignar un alérgeno a un producto
Llamaremos a:
POST
https://www.tspoonlab.com/recipes/api/allergy/{idAllergy}/components/add
Pasando en el request body:
class NewAllergyComponentsWrapper {
List<NewAllergyComponent> components;
}
public class NewAllergyComponent {
String id; // con valor null
String idComponent;
boolean traces;
}
En id no estableceremos ningún valor y se dejara a null. idComponent es el producto al que queremos asignar la alergia y traces nos indica si es una traza.
La petición devolverá la lista de todos los productos base y productos elaborados donde se ha añadido directa o indirectamente la alergia.
class AllergyGroup {
List<AllergyComponent> listComponentBase;
List<AllergyComponent> listComponentComplex;
}
Rest API : Desasignar un alérgeno a un producto
Para desasignar llamaremos a:
POST
https://www.tspoonlab.com/recipes/api/allergy/{idAllergy}/components/remove
En el request body pasaremos:
class NewAllergyComponentsWrapper {
List<DeleteAllergyComponent> components;
}
public class DeleteAllergyComponent {
String id;
}
El id se corresponde al identificador de la alergia con el componente.
Retornará una lista de todos los productos donde se ha desasignado la alergia.
retorna un List<ComponentWithType>
class ComponentWithType {
String id;
String descr;
int type;
Long color;
}
id es el identificador del componente/producto, descr la descripción.
El campo type indica qué tipo de producto es:
0 para ingredientes / produtos
1 para recetas / elaboraciones intermedias
2 para materiales / herramientas
3 para platos / elaboraciones finales
En el caso de los ingredientes/productos color indica el color asignado al mismo.
¿Te ha resultado útil este artículo?
Si necesitas más ayuda, contacta con soporte haciendo clic en el Chat de Soporte Integrado en la esquina inferior derecha de tu pantalla.
