< Volver al curso

8. Configurar GET y POST de una API Specification


En esta clase vamos a explicar cómo configurar GET y POST de una API Specification. Vamos a seguir desarrollando la API Specification que creamos en la séptima clase, en este caso, se añadirá un API Fragment en el proyecto, que contendrá la estructura del tipo de dato y los ejemplos que se mostraran para consumir nuestra API una vez esté publicada.

El fragmento de API que vamos a importar pertenece a American Flights API y nos proporciona la estructura del registro de un vuelo, los datos de prueba que se mostrarán (GET) y la forma en la que es necesario realizar una inserción (POST).

Tipos de API Fragments definidos

En la clase de hoy vamos a utilizar 2 tipos de fragmentos:

  1. Fragment Datatype: En la cabecera del archivo se indicará  «#%RAML 1.0 DataType»  y tiene como función indicar la estructura de los datos que va a contener nuestra API Specification.
  2. Fragment NamedExample: En la cabecera del archivo se indicará «#%RAML 1.0 NamedExample» e indicaremos los ejemplos que queremos que nos devuelva el método GET o el dato de ejemplo que queremos para el POST.
Estructuras de los tipos de datos, Datatype

La estructura de los datos (Datatype) que vamos a presentar se compone de lo siguiente:

  • Types, es el tipo de estructura que vamos a utilizar, puede ser un Object, un Array o un Union. Por el momento solo se utilizará el primero, dentro de este tipo se definirán las propiedades.
  • Properties, son los atributos personalizados que queremos definir en la estructura de datos. Por ejemplo, el código del vuelo.
  • Scalar Types, son los que definen el tipo de dato del atributo que hemos definido anteriormente. Por ejemplo, el código del vuelo es un String porque puede contener diferentes tipos de caracteres.

Una vez definida la estructura, se crearán los fragmentos de ejemplo basados en la misma. Os muestro la similitud entre la definición de la estructura y el ejemplo:

Por último, editaremos los métodos de los endpoints de nuestra API Specification.

  • Para GET será necesario crear una respuesta (response) mediante un cuerpo donde se defina la estructura (objeto DataType) y los datos a devolver (output NamedExample).
  • Para POST será necesario crear un cuerpo donde se defina la estructura (objeto DataType) como ejemplo (NamedExample), por tanto, antes de realizar una llamada al POST, veremos los datos de ejemplo que se incluirán en el cuerpo del mensaje para ser insertados automáticamente. La respuesta (response) será un cuerpo que contenga un mensaje que definamos sobre la inserción realizada y no el resultado de una consulta como en el caso de GET.

Si quieres saber más o necesitas ayuda personalizada, puedes suscribirte a mis servicios en el siguiente enlace

➡️ SUSCRIBIRSE A INGENIERO BINARIO ⬅️

Sin más, cómo configurar GET y POST de una API Specification ¡dentro vídeo!

 


Recursos


Recursos Clase 8

Estructura de los datos de ejemplo
===========================================

#%RAML 1.0 DataType

type: object
properties:
ID?: integer
code: string
price: number
departureDate: string
origin: string
destination: string
emptySeats: integer
plane:
type: object
required: false
properties:
type: string
totalSeats: integer

===========================================

Datos de ejemplo para el GET de /Flights
===========================================

#%RAML 1.0 NamedExample
value:


ID: 1
code: ER38sd
price: 400
departureDate: 2017/07/26
origin: CLE
destination: SFO
emptySeats: 0
plane:
type: Boeing 737
totalSeats: 150

ID: 2
code: ER45if
price: 540.99
departureDate: 2017/07/27
origin: SFO
destination: ORD
emptySeats: 54
plane:
type: Boeing 777
totalSeats: 300

===========================================

Datos de ejemplo para el GET de /Flights/{ID}
===========================================

#%RAML 1.0 NamedExample
value:
ID: 1
code: ER38sd
price: 400
departureDate: 2017/07/26
origin: CLE
destination: SFO
emptySeats: 0
plane:
type: Boeing 737
totalSeats: 150

===========================================

Datos de ejemplo para el POST de /Flights
===========================================

#%RAML 1.0 NamedExample
value:
    code: ER38sd
    price: 400
    departureDate: 2017/07/26
    origin: CLE
    destination: SFO
    emptySeats: 0
    plane:
      type: Boeing 737
      totalSeats: 150
===========================================

 

Clases del curso


 

< Volver al curso