Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .idea/vcs.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

149 changes: 149 additions & 0 deletions .idea/workspace.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

32 changes: 32 additions & 0 deletions HELP.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# Getting Started

### Reference Documentation
For further reference, please consider the following sections:

* [Official Apache Maven documentation](https://maven.apache.org/guides/index.html)
* [Spring Boot Maven Plugin Reference Guide](https://docs.spring.io/spring-boot/docs/3.2.0/maven-plugin/reference/html/)
* [Create an OCI image](https://docs.spring.io/spring-boot/docs/3.2.0/maven-plugin/reference/html/#build-image)
* [Docker Compose Support](https://docs.spring.io/spring-boot/docs/3.2.0/reference/htmlsingle/index.html#features.docker-compose)
* [Spring Data JPA](https://docs.spring.io/spring-boot/docs/3.2.0/reference/htmlsingle/index.html#data.sql.jpa-and-spring-data)
* [Spring Web](https://docs.spring.io/spring-boot/docs/3.2.0/reference/htmlsingle/index.html#web)
* [Rest Repositories](https://docs.spring.io/spring-boot/docs/3.2.0/reference/htmlsingle/index.html#howto.data-access.exposing-spring-data-repositories-as-rest)

### Guides
The following guides illustrate how to use some features concretely:

* [Accessing Data with JPA](https://spring.io/guides/gs/accessing-data-jpa/)
* [Building a RESTful Web Service](https://spring.io/guides/gs/rest-service/)
* [Serving Web Content with Spring MVC](https://spring.io/guides/gs/serving-web-content/)
* [Building REST services with Spring](https://spring.io/guides/tutorials/rest/)
* [Accessing JPA Data with REST](https://spring.io/guides/gs/accessing-data-rest/)
* [Accessing Neo4j Data with REST](https://spring.io/guides/gs/accessing-neo4j-data-rest/)
* [Accessing MongoDB Data with REST](https://spring.io/guides/gs/accessing-mongodb-data-rest/)

### Docker Compose support
This project contains a Docker Compose file named `compose.yaml`.
In this file, the following services have been defined:

* mariadb: [`mariadb:latest`](https://hub.docker.com/_/mariadb)

Please review the tags of the used images and set them to the same as you're running in production.

80 changes: 44 additions & 36 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,93 +3,101 @@
> Pero ahora mismo no es nuestro objetivo.
> Los objetivos son los que aparecen tras ### Objetivos del módulo


# Kata API

Kata : crear una [API](https://github.com/OAI/OpenAPI-Specification)
funcional [CRUD](https://www.codecademy.com/articles/what-is-crud) sobre
varias tablas en MySQL.

## Objetivo

Creación y utilización de una API y aprender y usar diferentes [métodos
HTTP](https://developer.mozilla.org/es/docs/Web/HTTP/Methods).
Además de trabajar con Docker en un proyecto.

## Prerrequisitos

En la Kata se asume familiaridad con las siguientes tecnologías
[Git](https://git-scm.com/), [Docker](https://www.docker.com/) y
[Docker-compose](https://docs.docker.com/compose/).

## Procedimiento

[Hacer un fork](https://github.com/epfl-dojo/kata-api/#fork-destination-box) del repositorio,
crear una rama (`git checkout -b username/langage` por ejemplo `git checkout
-b nicolasreymond/php`, desde vuestro fork). Haced un pull request para añadirlo a este
repo y añadiéndoos al final de este fichero como autores.
crear una rama (`git checkout -b username/langage` por ejemplo `git checkout -b nicolasreymond/php`, desde vuestro fork). Haced un pull request para añadirlo a este
repo y añadiéndoos al final de este fichero como autores.

## Puesta en marcha

En cada cambio de un fichero en el contenedor tenemos que hacer:

```bash
docker-compose up --build
```

Y para lanzar los contenedores:

```bash
docker-compose up -d
```

## Objetivos de la Kata

- [ ] Forcker le dépot Git
- [ ] Créer une nouvelle branche (ex. : `usermame/langage`)
- [ ] Ajouter un container Docker (pour le langage de votre choix)
- [ ] Ajouter un container Docker (pour le langage de votre choix)
au docker-compose
### Objetivos del módulo

### Objetivos del módulo

- [ ] Comprender cómo detectar las diferentes [peticiones HTTP](https://developer.mozilla.org/es/docs/Web/HTTP/Methods)
(GET, POST, PUT, PATCH, DELETE)
- [ ] Implementación del CRUD sobre el endpoint `/beer*`
- [ ] Implementar la creación **`C`**`reate`
- [ ] Implementar la lectura **`R`**`ead`
- [ ] Implementar la actualilzación **`U`**`pdate`
- [ ] Implementar el borrado **`D`**`elete`
- [ ] Implementar la creación **`C`**`reate`
- [ ] Implementar la lectura **`R`**`ead`
- [ ] Implementar la actualilzación **`U`**`pdate`
- [ ] Implementar el borrado **`D`**`elete`
- [ ] Implementar la lectura de los endpoints `/brewerie*`, `/categorie*` et `/style*`
- [ ] Probar la API con
- [postman](https://www.postman.com/),
- [insomnia](https://insomnia.rest),
- [curl](https://curl.haxx.se/),
- [httpie](https://httpie.org/), etc…
y guardar esas peticiones en un fichero de resultados.
- [insomnia](https://insomnia.rest),
- [curl](https://curl.haxx.se/),
- [httpie](https://httpie.org/), etc…
y guardar esas peticiones en un fichero de resultados.
- [ ] Hacer un documento que explique cómo utilizar la API
(con ejemplos de cada una de las consultas)

Ir más lejos
- [ ] Implementar la paginación para consultar que devuelven muchos datos
por ejemplo con el método HTTP HEAD.

- [ ] Implementar la paginación para consultar que devuelven muchos datos
por ejemplo con el método HTTP HEAD.
[HEAD](https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/HEAD)
- [ ] Integración con [swagger](https://swagger.io/tools/open-source/open-source-integrations/)
- [ ] Integración con [swagger](https://swagger.io/tools/open-source/open-source-integrations/)
del lenguaje escogido.
- [ ] Modificaciones para poder subir imágenes de las cervezas

- [ ] Modificaciones para poder subir imágenes de las cervezas

## Descripción de rutas a utilizar

| Endpoint | Resultado | Método |
|----------------- |-----------------------------------------|:--------:|
|`/beers` | Muestra todas las cervezas | GET |
|`/beer` | Añadir una cerveza | POST |
|`/beer/{id}` | Mostrar la cerveza con el id `{id}` | GET |
|`/beer/{id}` | Eliminar una cerveza | DELETE |
|`/beer/{id}` | Modificar una cerveza | PUT |
|`/beer/{id}` | Modificar parcialmente una cerveza | PATCH |
|`/breweries` | Listar todas las cerveceras | GET |
|`/brewerie/{id}` | Mostrar la cervecera `{id}` | GET |
|`/categories` | Listar todas las categorías | GET |
|`/categorie/{id}` | Mostrar la categoría `{id}` | GET |
|`/styles` | Listar todos los estilos -style- | GET |
|`/style/{id}` | Mostrar el estilo -style- `{id}` | GET |

| Endpoint | Resultado | Método |
| ------------------- | ------------------------------------- | :-----: |
| `/beers` | Muestra todas las cervezas | GET |
| `/beer` | Añadir una cerveza | POST |
| `/beer/{id}` | Mostrar la cerveza con el id `{id}` | GET |
| `/beer/{id}` | Eliminar una cerveza | DELETE |
| `/beer/{id}` | Modificar una cerveza | PUT |
| `/beer/{id}` | Modificar parcialmente una cerveza | PATCH |
| `/breweries` | Listar todas las cerveceras | GET |
| `/brewerie/{id}` | Mostrar la cervecera `{id}` | GET |
| `/categories` | Listar todas las categorías | GET |
| `/categorie/{id}` | Mostrar la categoría `{id}` | GET |
| `/styles` | Listar todos los estilos -style- | GET |
| `/style/{id}` | Mostrar el estilo -style-`{id}` | GET |

## Colaboradores (idiomas en orden alfabético)

[Laravel](https://github.com/SaphireVert/Kata-API/tree/saphirevert/laravel) → [![saphirevert-repos][saphirevert-shield]][saphirevert-url]
[Laravel](https://github.com/SaphireVert/Kata-API/tree/saphirevert/laravel) → [saphirevert-repos][saphirevert-url]

Java → [hyunxhri][saphirevert-url]

[saphirevert-shield]: https://badgen.net/badge/Github/SaphireVert/green?icon=https://svgshare.com/i/Srf.svg
[saphirevert-url]: https://github.com/saphirevert/

Loading