Lo mejor para comenzar es hacer una serie de ejemplos. En este punto usted debería contar con:
Para proceder con este capítulo es necesario contar con ordenes creadas desde la página web. Puede consultar al personal administrativo del punto de atención que desea conectar a su software de consumo de WS como se realiza esta operación en la web de testing.
Es el método utilizado para obtener un recurso mediante su URI. Para avanzar con el ejemplo en la página de suap puede mirar la lista de ordenes. Verá que las mismas tienen un número. Ese número con el agregado de una O delante es el token de la orden en tanto recurso para el WS. Con eso podremos armar la URI de un recurso orden para hacer un GET y comenzar a analizar el response.
GET “https://ws.test.suap.com.ar/procesador/doV2/orden/O1234” El header de este request tiene auth basic + user:pass (token) |
Un response producto de un GET es un Json que contiene las siguientes secciones principales:
Esquema de response general. {“REST”: {…}, “RENDER”: {…}, “STATUS” : {…}, “VIEW”: {…}, } |
Para ejemplificar veamos como se obtiene un atributo y un recuros en la sección REST y RENDER. Por caso la fecha de realización como atributo y el afiliado como recurso.
En el fragmento inferior vemos que la fecha de realización es el valor de la fecha, es decir, es un atributo. En cambio el recurso afiliado es una URI. Si hiciermos GET a esa URI obtendríamos toda la infomación del recurso.
{ “REST”: { “FechaRealizacion”:“2017-01-04 00:00:00”, - - - “afiliado”: “”https://ws.test.suap.com.ar/procesador/doV2/afiliado/7C9tIPdWMNTt99Zn1afALxroGVuQMt”]]” , - - - } |
El mismo response pero en la sección RENDERpresenta la información mas apropiada para consumir sin realizar mas consultas. Con respecto a los atributos vemos que no hay diferencia, en cambio con los recursos asociados sí. Del afiliado observamos que tenemos información mas completa y útil sin la necesidad de hacer mas requests al WS.
{ “RENDER”: { “FechaRealizacion”: “2017-01-04 00:00:00”, - - - “afiliado”:{ “NombreCompuesto”: “CORBALAN MARTA LAURA ”, “DocNumero”: “10044895”, “DocTipo”: “DNI”, “NumeroAfiliado”: “15055729820800”, “Token”: “7C9tIPdWMNTt99Zn1afALxroGVuQMt”, - - - } } |
La sección VIEW es una pequeña “vista” o formulario con opciones que debe ser presentada al usuario. El consumidor tiene la libertad de realizar GET para mantener sincronizado su sistema con suap sin la intervención del usuario, pero debe ofrecer al menos una forma de acceder al GET de los recursos procesando la sección VIEW del response.
En el caso del método que nos ocupa el VIEW en la mayoría de los casos contendrá acciones.
FALTA DOCUMENTAR
Otro modo de obtener recursos es mediante la accion search. Se crean mediante el método POST y devuelven como response una lista de recursos que coinciden en los criterios de búsqueda especificados.
Se debe especificar en la URI del POST el “recursoABuscar” + “.” + “search” . Es decir, supongamos que buscamos un afiliado, la URI en testing sería:
En el content debemos especificar los atributos y/o recursos relacionados mas sus atributos separados por puntos “.” y finalmente la operación de comparación. Veamos por ejemplo el caso de buscar todos los afiliados que contienen el nombre “Santiago”:
POST https://ws.test.suap.com.ar/procesador/doV2/search.afiliado [{ “NombreCompuesto.contenga”:”Santiago” }] |
Si seguimos el ejemplo veremos que nos devuelvo un response que contiene 3 secciones:
REQUEST https://ws.test.suap.com.ar/procesador/doV2/afiliado.search]]]]]]]]]]]] { “REST”:{ “1”:“https:ws….V2/afiliados/YMABXGMrPMo0iDFs1lVeGSvhLEWwPq”, - - - “10”:https://ws....V2/afiliados/ges37O3Ne007vZyM4OnGIpj0cEzm4N]]]]]]]]]]]]” }, “STATUS”: { “ERROR”: [], “NOTICE”: { “More”: true, “ActualPage”: 1, “PageSize”: 100 } } , “RENDER”:{ “1”:{ “NombreCompuesto”: “MU OZ SANTIAGO SEGUNDO ”, “DocNumero”:” - - - } } |
En la sección STATUS aparece una sección NOTICE en la que se nos indica una serie de datos útiles para el paginado:
Si deseáramos avanzar de página se indica, repitiendo el post con todo el contenido, en la uri como un parámetro. Quedaría “nombreRecurso”.search/n donde n es el número de página.
POST “https://ws.test.suap.com.ar/procesador/doV2/afiliado.search/1 ” { “NombreCompuesto.contenga”:”Santiago” } |
La obtención de recursos mediante search sirve para actualizar datos de convenios en el LIS. Supongamos un POST al recurso search.obrasSociales con el siguiente content:
https://ws.test.suap.com.ar/procesador/doV2/obraSocial.search]]]]]] { “Nombre.contenga”:”” } |
Tendremos como response la lista de los convenios que están siendo gestionados por suap en este momento. Además esa lista, como siempre, contendrá las URIs de cada uno para poder recorrerlos y obtener información relevante para el sistema del consumidor. Por ejemplo valores de unidades, nomencladores, etc.
{ “REST”: { “1”: “https://ws.test.../28EiEf2G0gP49RtFighfflHBZXk1tu]]]]]]”, “2”: “https://ws.test.../mAJU8wAVBgU4GgLQGhX9JTXUO6wDrX]]]]]]”, “3”: “https://ws.test.../Gy226GrRazQ8yNjYXawYB7ikv3C6xI]]]]]]” }, “STATUS”: { “ERROR”: [], “pagina”: 1, “cantidadTotal”: 3, “cantidadPorPagina”: “10” }, “RENDER”: { “1”: { “Nombre”: “PAMI”, - - - }, “2”: { “Nombre”: “ACA SALUD”, - - - }, “3”: { “Nombre”: “Sancor Salud”, - - - } } } |