Develop an API to explore the world of Disney, which will allow knowing and modifying the characters that make it up and understanding in which movies they participated. On the other hand, you will need to expose the information so that any frontend can consume it.
๐ Use Ruby on Rails.
๐ It is not necessary to assemble the Frontend.
๐ Routes must follow the REST pattern.
Technical requirements:
1๏ธโฃ Database Modeling.
โ Character: must have,
โ Image (does not need to be persisted in the database).
โ Name.
โ Age.
โ Weight.
โ History.
โ Associated movies or series.
โ Film or Series: must have,
โ Image (does not need to be persisted in the database).
โ Title.
โ Creation date.
โ Rating (from 1 to 5).
โ Associated characters.
โ Gender: must have,
โ Name.
โ Image (does not need to be persisted in the database).
โ Associated movies or series.
2๏ธโฃ User Authentication
To make requests to subsequent endpoints, the user must have a token that you will get when you authenticate. To do this, registration and login endpoints must be developed, which allow to obtain the token.
3๏ธโฃ List of Characters
The list must show:
โ Image (it does not need to be persisted in the database).
โ Name.
4๏ธโฃ Character Creation, Editing, and Deletion (CRUD)
The basic operations of creating, editing and deleting characters should exist.
5๏ธโฃ Character Detail
In the detail, all the attributes of the character must be listed, as well as their related movies or series.
6๏ธโฃ Character Search
It should allow you to search by name, and filter by age, weight or movies/series in which you participated.
To specify the search term or filters, they must be sent as query parameters:
โ GET /characters?name=name
โ GET /characters?age=age
โ GET /characters?movies=idMovie
7๏ธโฃ List of Movies
It should show only the image, title and creation date fields.
The endpoint should be:
โ GET /movies
8๏ธโฃ Detail of Movie / Series with its characters
It will return all the fields of the movie or series along with the characters associated with it
9๏ธโฃ Movie/Series Creation, Editing and Deletion (CRUD)
The basic operations of creating, editing and deleting movies or series must exist.
1๏ธโฃ0๏ธโฃ Search for Movies or Series
It should allow you to search by title, and filter by genre. Also, allow to order the results by date of creation in an ascending or descending way.
The search term, filter or sort must be specified as query parameters:
โ /movies?name=name
โ /movies?genre=idGenre
โ /movies?order=ASC | DESC
1๏ธโฃ1๏ธโฃ Sending emails
When registering on the site, the user should receive a welcome email. It is recommended, the use of a third-party service such as SendGrid.
โผ Documentation: It is desirable and optional to document the endpoints using a tool such as Postman or Swagger.