Se trata de implementar el API REST para nuestra aplicación que se haya diseñado en el objetivo anterior.
Haber pasado los tests del objetivo anterior, diseño de REST.
Después de diseñar las rutas, es necesario implementarlas, y como en todo código, hay que testear todos los aspectos posibles usando herramientas de test automático.
En cuanto a este último, se debe de usar el mismo fichero de construcción que se haya usado en el hito anterior, siempre que se hayan usado las mismas tareas que se van a testear.
build
hará una compilación o transpilación, o en general generará
los ficheros que se vayan a desplegar efectivamente, que en muchos
casos no serán los mismos que los que hay en el repositorio. Sólo será
necesaria en caso de que haya que compilar o transpilar parte de los fuentes;
en la mayoría de los lenguajes interpretados no siempre se usa (aunque en
muchos casos se usan bundlers
para integrar todos los fuentes en un solo
fichero junto con las dependencias, que será más fácil de desplegar).install
instalará esos ficheros en un lugar donde se vayan a
ejecutar, o hará otro tipo de instalaciones; este paso es alternativo al
anterior en la mayoría de los lenguajes intepretados.test
ya estará ejecutándose desde antes, salvo que ahora se
incluirán también tests de integración.Los dos primeros casos no hacen falta juntos en muchos lenguajes de
programación; en caso de usar un contenedor, ya estará todo instalado de
antemano; en ese caso se puede sustituir el objetivo por un no-op
que no haga
nada, o simplemente no lanzar el segundo.
Como ya el proyecto ha llegado a un estado en el cual se puede desplegar como un servicio web, habrá que documentar cómo la implementación de las rutas se ajusta a las historias de usuario que se hayan planteado desde el principio (la justificación de la ruta en sí y sus nombres se habrá hecho ya en el anterior). No hace falta que en este punto todos los tests e historias estén implementadas, pero sí las suficientes para que se puedan llevar a cabo estos tests de integración.
Se recuerda que en este caso, la integración de la que se habla es la de otras bibliotecas que dependan de la clase o clases que sean la base del servicio web, y el propio servicio web. No es necesario ningún otro tipo de servicio, y especialmente desaconsejamos, en esta fase, integrar almacenes de datos de cualquier tipo.
Del curso 0 se puede consultar el material sobre tests de integración, y en el caso de que se empiecen a añadir accesos a datos, el tema de inversión de dependencias.
Habrá que subir los fuentes a GitHub y hacer un pull request al documento que describa las prácticas y que se anunciará en la web de la asignatura como es habitual.
Para los tests, se descargará el repositorio y se ejecutará ese comando con tres targets en secuencia de esta forma:
make build
make test
En ninguno de ellos tendrá que dar error. También se comprobará (aunque ya se hace en el hito anterior) que pasen los tests que se usará para ejecutar los tests de integración.
Tras la implementación de las rutas que se hayan planteado en el objetivo anterior, se tendrá que cubrir con tests de integración las rutas creadas y sus diferentes posibilidades (de acuerdo con las HUs que se hayan creado).
Se recuerda también que este es un hito de un proyecto, y como tal los tests para este hito incluyen los de todos los anteriores; el proyecto tendrá que seguir desarrollándose de acuerdo a lo indicado en el hito anterior y tener como mínimo la estructura que se creó en el hito 1.
El alcanzar este objetivo avanzará, en principio, 10% de la puntuación de este apartado.