API Design
API Design
Escuela de APIs
Todos los derechos reservados.
Se encuentra prohibida la reproducción total o parcial de este documento, salvo autorización expresa del
autor.
Transformación digital
● Facilidad de aprendizaje
● Flexibilidad
● Robustez
ejemplos…
- $ref: "#/components/parameters/exclude_param"
- $ref: "#/components/parameters/expand_param"
- $ref: "#/components/parameters/order_by_param"
responses:
'206':
description: Ok
content:
application/json:
schema:
$ref: "#/components/schemas/standard_response_patients"
examples:
Ejemplo:
$ref: '#/components/examples/get_patient
REST
REST
Principios básicos:
➢ Una URL identifica un recurso. Por ejemplo, GET
http://testapi.cloudappi.net/users-eee?param-id=xxxx
GET /users?$expand=coches
[{name:222,surname:222,age:22,coches:{XXX:XX,X:XX,X:XX,X:XX},
{name:222,surname:222,age:22,coches:{XXX:XX,X:XX,X:XX,X:XX}]
user. {name:222,surname:222,age:22,address:{XXX:XX,X:XX,X:XX,X:XX}
50 atributos
1 atributos es de tipo base 64 imagen 5MB media
1000 elementos
¿qué ocurre un listado de todos mis clientes?
GET https://api.cloudappi.net/clients?$select=name,surname,age
user:[ {name:222,surname:222,age:22}]
¿Qué significa
GET /users?name=”M” & firstname=”S”? ¿AND o OR?
/users?$filter={like:{name:”M”}}
Parámetros
/users?$filter={name:{in:[“marco”,”Juan”]}}
especiales
Se utiliza el lenguaje de filtrado de MongoDB
/users?$filter={$or[$like["name","m"],$like["name","s"]}
POST /users/delete?DNI=47041896L
POST /users/get
body: {dni:47041896L}
GET /users
user. {name:222,surname:222,age:22,address:{XXX:XX,X:XX,X:XX,X:XX}
Obtener usuarios:
GET http://apitest.cloudsystems.es/users?$limit=100
resultado:
Header: HTTP CODE: 200
Body:
{ “data": [
{ "name": "Marco","firstname": "Polo",
"address": {"descripcion": "blabbla"}},
{ "name": "Prueba","firstname": "ww",
"address": {"descripcion": "blab bla" }}]
}}
Actualizar un usuario
PUT/PATCH http://apitest.cloudsystems.es/users/23
body:
{lastname:”González”}
resultado:
Header:
HTTP CODE: 200
Body:
{“data”:{ "name": "Marco","lastname": " González",
"address": {"descripcion": "blabbla"}} }
}
Eliminar un usuario
DELETE http://apitest.cloudsystems.es/users/47041896L
resultado:
Header:
HTTP CODE: 200
Body:
{“data”:{ "name": "Marco","lastname": " González",
"address": {"descripcion": "blabbla"}} }
}
❏ Ubiquitous Language
❏ Bounded Context
❏ Domain Model
* campos requeridos
* campos requeridos
* campos requeridos
* campos requeridos
https://apiquality.es/