Exemples d'ús de l'API
Obtenir els IDs dels objectes d'EquipsTIC
Tots els IDs de les entitats que formen part d'una infraestructura es poden consultar i recuperar partir d'operacions GET a la API d'EquipsTIC.
La API proporciona operacions GET que permeten recuperar totes les entitats disponibles de cada apartat. En la informació que retorna, consta tant l'ID com el codi.
Exemple
"status": "success",
"data": [
{
"idAmbit": 51,
"nom": "Sala tècnica",
"codi": "SALA_TEC",
"categoriaInfraestructura": {
"idCategoria": 3,
"nom": "Equip de treball",
"codi": "EQUIP_TREBALL"
}
},
{
"idAmbit": 57,
"nom": "Sala tècnica",
"codi": "SALA_TEC",
"categoriaInfraestructura": {
"idCategoria": 2,
"nom": "Equip de comunicació",
"codi": "EQUIP_COMUNICACIO"
}
},
{
"idAmbit": 62,
"nom": "Sala tècnica",
"codi": "SALA_TEC",
"categoriaInfraestructura": {
"idCategoria": 1,
"nom": "Equip de computació",
"codi": "EQUIP_COMPUTACIO"
}
},
{
"status": "success",
"data": [
{
"idTipus": 6,
"nom": "Impressora",
"codi": "IMPRESSORA",
"requereixCampsExtra": false,
"categoriaInfraestructura": {
"idCategoria": 3,
"nom": "Equip de treball",
"codi": "EQUIP_TREBALL"
}
},
{
"idTipus": 23,
"nom": "Monitor",
"codi": "MONITOR",
"requereixCampsExtra": false,
"categoriaInfraestructura": {
"idCategoria": 3,
"nom": "Equip de treball",
"codi": "EQUIP_TREBALL"
}
},
{
"idTipus": 24,
"nom": "Dockstation",
"codi": "DOCKSTATION",
"requereixCampsExtra": false,
"categoriaInfraestructura": {
"idCategoria": 3,
"nom": "Equip de treball",
"codi": "EQUIP_TREBALL"
}
},
...
Noteu que amb les operacions exposades per la API es poden recuperar totes les dades necessàries per crear (POST) i modificar (PUT) les infraestructures.
Operacions POST (creació) i PUT (modificació)
Per una operació PUT, el més senzill és recuperar les dades de la infraestructura amb una operació GET, que es troben al camp 'data' de la resposta rebuda. Amb aquestes dades ja tindreu la majoria d'IDs que us poden fer falta per l'operació PUT sobre la mateixa infraestructura.
Exemples per modificar infraestructures sense conèixer els IDs dels objectes
Suposem que volem fer una modificació sobre la infraestructura YLAP006669. Coneixent la marca i el número de sèrie podeu recuperar les seves dades.
La marca de l'equip és Fujitsu. A la API, a la secció marca es troba una operació que permet cercar una marca per nom:
GET /marca/cerca/nom/{nom}
Executem GET https://bus-soades.upc.edu/EquipsTIC/APIv1/marca/cerca/nom/fujitsu
Resposta:
{
"status": "success",
"data": [
{
"idMarca": 44,
"nom": "FUJITSU"
}
]
}
A la resposta podem veure com idMarca és 44 per 'FUJITSU'.
En cas de no estar segurs, sempre es pot emprar l'operació GET /marca per recuperar la llista de totes les marques i triar la que necessitem.
Ara, sabent el número de sèrie de ADRIATICA, YLAP006669, podem recuperar totes les seves dades amb l'operació sobre infraestructures
GET /infraestructura/cerca/marca/{idMarca}/sn/{sn}
Executem GET https://bus-soades.upc.edu/EquipsTIC/APIv1/infraestructura/cerca/marca/44/sn/YLAP006669
Resposta:
{
"status": "success",
"data": {
"identificador": 6414,
"capacitatTotalGb": null,
"dataAltaManteniment": null,
"dataBaixaManteniment": null,
"dataCompra": "2014-02-15",
"dataEntrega": null,
"dataFinalGarantia": "2017-02-14",
"dataTramitFactura": null,
"discs": "2 x 2Tb",
"edifici": {
"idEdifici": 68
},
"importCompra": 0,
"localitzacio": " SC2 - Centre de Càlcul",
"model": "Primergy RX100",
"modelCpu": "Intel Xeon CPU E31220 @ 3,10 Ghz",
"nomDns": "YLAP006669",
"numeroAd": null,
"numeroCpus": 1,
"numeroInventariUpc": null,
"numeroPorts": null,
"numeroSerie": "YLAP006669",
"configuracioHardware": null,
"observacions": null,
"proveidorCompra": "0",
"sla": null,
"proveidorManteniment": "UPCnet",
"dataCarrega": "2015-11-13 15:42:34",
"estatValidacio": {
"idEstat": 7
},
"estat": {
"idEstat": 1
},
"marca": {
"idMarca": 44
},
"ambit": null,
"tipusInfraestructura": {
"idTipus": 1
},
"tipusUs": null,
"tipusXarxa": null,
"unitatGestora": null,
"unitatDestinataria": null,
"unitat": {
"idUnitat": 42
},
"dataCreacio": "2015-11-13",
"dataDarreraModificacio": "2016-04-26",
"usuari": {
"idUsuari": 17
},
"usuariInfraestructura": null,
"nomUsuariInfraestructura": null,
"causaCanviWorkflow": null,
"dataCanviWorkflow": null,
"estatAnteriorWorkflow": null,
"sistemaOperatiu": null
}
}
Canviarem aquest edifici, per exemple, per l'edifici SC1. No coneixem encara quin ID correspon a aquest edifici, però sabem el seu codi, que entre altres llocs es troba a la plantilla d'importació d'EquipcTIC. També sabem el codi del Campus, de la mateixa plantilla, que és SC.
A la secció Edifici veiem que hi ha una operació que ens permet cercar per codi d'Edifici i codi de Campus:
GET /edifici/cerca/codi/{codi}/codicampus/{codiCampus}
Executem GET https://bus-soades.upc.edu/EquipsTIC/APIv1/edifici/cerca/codi/SC1/codicampus/SC
Resposta:
{
"success": "success",
"data": {
"idEdifici": 67,
"nom": "EDIFICI SC1 (ETSAV)",
"codi": "SC1",
"adreca": "C. PERE SERRA, 1-15",
"ciutat": "SANT CUGAT DEL VALLÈS",
"codi_postal": "08190",
"campus": {
"idCampus": 6,
"nom": "CAMPUS SANT CUGAT DEL VALLÈS",
"codi": "SC"
}
}
}
De la resposta podem veure que el ID de l'edifici SC1 és el 67.
Podem aprofitar les dades de la comanda GET de la infraestructura per construir la comanda PUT. La part que ens interesa es troba
Executem PUT https://bus-soades.upc.edu/EquipsTIC/APIv1/infraestructura/6414
Amb aquest Body:
{
"identificador": 6414,
"capacitatTotalGb": null,
"dataAltaManteniment": null,
"dataBaixaManteniment": null,
"dataCompra": "2014-02-15",
"dataEntrega": null,
"dataFinalGarantia": "2017-02-14",
"dataTramitFactura": null,
"discs": "2 x 2Tb",
"edifici": {
"idEdifici": 67
},
"importCompra": 0,
"localitzacio": " SC2 - Centre de Càlcul",
"model": "Primergy RX100",
"modelCpu": "Intel Xeon CPU E31220 @ 3,10 Ghz",
"nomDns": "YLAP006669",
"numeroAd": null,
"numeroCpus": 1,
"numeroInventariUpc": null,
"numeroPorts": null,
"numeroSerie": "YLAP006669",
"configuracioHardware": null,
"observacions": null,
"proveidorCompra": "0",
"sla": null,
"proveidorManteniment": "UPCnet",
"dataCarrega": "2015-11-13 15:42:34",
"estatValidacio": {
"idEstat": 7
},
"estat": {
"idEstat": 1
},
"marca": {
"idMarca": 44
},
"ambit": null,
"tipusInfraestructura": {
"idTipus": 1
},
"tipusUs": null,
"tipusXarxa": null,
"unitatGestora": null,
"unitatDestinataria": null,
"unitat": {
"idUnitat": 42
},
"dataCreacio": "2015-11-13",
"dataDarreraModificacio": "2016-04-26",
"usuari": {
"idUsuari": 17
},
"usuariInfraestructura": null,
"nomUsuariInfraestructura": null,
"causaCanviWorkflow": null,
"dataCanviWorkflow": null,
"estatAnteriorWorkflow": null,
"sistemaOperatiu": null
}
{
"status": "fail",
"message": "Ha d'informar un valor vàlid per al camp Propósit/Àmbit"
}
Sembla que aquesta infraestructura és antiga i no té informat el camp Propósit, que ara és un camp obligatori.
Suposem que volem informar el propòsit (abans àmbit) amb 'Lloc de treball compartit'. Segons la plantilla d'importació té el codi 'LT_COMP'
Podem veure a la pàgina de la API REST que hi ha una operació per cercar l'àmbit per codi:
GET /ambit/cerca/codi/{codi}
Executem GET https://bus-soades.upc.edu/EquipsTIC/APIv1/ambit/cerca/codi/SALA_TEC
Resposta:
{
"status": "success",
"data": [
{
"idAmbit": 51,
"nom": "Sala tècnica",
"codi": "SALA_TEC",
"categoriaInfraestructura": {
"idCategoria": 3,
"nom": "Equip de treball",
"codi": "EQUIP_TREBALL"
}
},
{
"idAmbit": 57,
"nom": "Sala tècnica",
"codi": "SALA_TEC",
"categoriaInfraestructura": {
"idCategoria": 2,
"nom": "Equip de comunicació",
"codi": "EQUIP_COMUNICACIO"
}
},
{
"idAmbit": 62,
"nom": "Sala tècnica",
"codi": "SALA_TEC",
"categoriaInfraestructura": {
"idCategoria": 1,
"nom": "Equip de computació",
"codi": "EQUIP_COMPUTACIO"
}
},
{
"idAmbit": 67,
"nom": "Sala tècnica",
"codi": "SALA_TEC",
"categoriaInfraestructura": {
"idCategoria": 4,
"nom": "Dispositiu d'emmagatzemament",
"codi": "DISPOSITIU_EMMAGATZEMAMENT"
}
}
]
}
Podem veure que hi ha vàries respostes, però per la categoria del nostre equip (EQUIP_COMPUTACIO) només hi ha 1 coincidència amb idAmbit: 62
Tornem a fer l'operació PUT, ara ja amb el camp obligatori 'àmbit' informat.
A efectes de simplificar d'aquest exemple, s'ha informat els camps 'Sistema operatiu' i 'Capacitat total GB', que també són obligatoris per aquest tipus de categoria.
{
"identificador": 6414,
"capacitatTotalGb": "2 Discs 1TB",
"dataAltaManteniment": null,
"dataBaixaManteniment": null,
"dataCompra": "2014-02-15",
"dataEntrega": null,
"dataFinalGarantia": "2017-02-14",
"dataTramitFactura": null,
"discs": "2 x 2Tb",
"edifici": {
"idEdifici": 67
},
"importCompra": 0,
"localitzacio": " SC2 - Centre de Càlcul",
"model": "Primergy RX100",
"modelCpu": "Intel Xeon CPU E31220 @ 3,10 Ghz",
"nomDns": "YLAP006669",
"numeroAd": null,
"numeroCpus": 1,
"numeroInventariUpc": null,
"numeroPorts": null,
"numeroSerie": "YLAP006669",
"configuracioHardware": null,
"observacions": null,
"proveidorCompra": "0",
"sla": null,
"proveidorManteniment": "UPCnet",
"dataCarrega": "2015-11-13 15:42:34",
"estatValidacio": {
"idEstat": 7
},
"estat": {
"idEstat": 1
},
"marca": {
"idMarca": 44
},
"ambit": {
"idAmbit": 62
},
"tipusInfraestructura": {
"idTipus": 1
},
"tipusUs": null,
"tipusXarxa": null,
"unitatGestora": null,
"unitatDestinataria": null,
"unitat": {
"idUnitat": 42
},
"dataCreacio": "2015-11-13",
"dataDarreraModificacio": "2016-04-26",
"usuari": {
"idUsuari": 17
},
"usuariInfraestructura": null,
"nomUsuariInfraestructura": null,
"causaCanviWorkflow": null,
"dataCanviWorkflow": null,
"estatAnteriorWorkflow": null,
"sistemaOperatiu": {
"idSistemaOperatiu": 2
}
}
Resposta:
200 - OK
{
"status": "success",
"data": {
"identificador": 6414,
"capacitatTotalGb": "2 Discs 1TB",
"dataAltaManteniment": null,
"dataBaixaManteniment": null,
"dataCompra": "2014-02-15",
"dataEntrega": null,
"dataFinalGarantia": "2017-02-14",
"dataTramitFactura": null,
"discs": "2 x 2Tb",
"edifici": {
"idEdifici": 67
},
"importCompra": 0,
"localitzacio": " SC2 - Centre de Càlcul",
"model": "Primergy RX100",
"modelCpu": "Intel Xeon CPU E31220 @ 3,10 Ghz",
"nomDns": "YLAP006669",
"numeroAd": null,
"numeroCpus": 1,
"numeroInventariUpc": null,
"numeroPorts": null,
"numeroSerie": "YLAP006669",
"configuracioHardware": null,
"observacions": null,
"proveidorCompra": "0",
"sla": null,
"proveidorManteniment": "UPCnet",
"dataCarrega": "2015-11-13 15:42:34",
"estatValidacio": {
"idEstat": 7
},
"estat": {
"idEstat": 1
},
"marca": {
"idMarca": 44
},
"ambit": {
"idAmbit": 62
},
"tipusInfraestructura": {
"idTipus": 1
},
"tipusUs": null,
"tipusXarxa": null,
"unitatGestora": null,
"unitatDestinataria": null,
"unitat": {
"idUnitat": 42
},
"dataCreacio": "2015-11-13",
"dataDarreraModificacio": "2017-03-23",
"usuari": {
"idUsuari": 802
},
"usuariInfraestructura": null,
"nomUsuariInfraestructura": null,
"causaCanviWorkflow": null,
"dataCanviWorkflow": null,
"estatAnteriorWorkflow": null,
"sistemaOperatiu": {
"idSistemaOperatiu": 2
}
}
}
A les dades de la resposta es poden veure com els valors ja estan canviats.
Per tant, si coneixeu els codis de les entitats que voleu modificar, mitjançant operacions a la API, es poden conèixer els seus IDs per tal de poder-los informar a les operacions POST o PUT.
Comparteix: