{"id":18151412,"url":"https://github.com/exploit-experts/rickandmorty-spring-api","last_synced_at":"2026-03-08T20:32:22.339Z","repository":{"id":258021566,"uuid":"870274650","full_name":"Exploit-Experts/RickAndMorty-Spring-API","owner":"Exploit-Experts","description":"RickAndMorty-Spring-API is a backend developed with Java and Spring Boot that implements a RESTful API to manage and list data from the Rick and Morty series. The project is prepared to be consumed by a separate front-end.","archived":false,"fork":false,"pushed_at":"2024-12-09T02:20:28.000Z","size":244,"stargazers_count":0,"open_issues_count":0,"forks_count":3,"subscribers_count":0,"default_branch":"master","last_synced_at":"2024-12-17T03:08:43.735Z","etag":null,"topics":["api","java","maven","restful-api","spring"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Exploit-Experts.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-10-09T18:38:16.000Z","updated_at":"2024-12-09T02:20:29.000Z","dependencies_parsed_at":"2024-10-17T10:16:01.966Z","dependency_job_id":"e0a8a07b-f93f-4b5e-8155-4ed8e6e0f399","html_url":"https://github.com/Exploit-Experts/RickAndMorty-Spring-API","commit_stats":null,"previous_names":["exploit-experts/rickandmorty-spring-api"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Exploit-Experts%2FRickAndMorty-Spring-API","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Exploit-Experts%2FRickAndMorty-Spring-API/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Exploit-Experts%2FRickAndMorty-Spring-API/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Exploit-Experts%2FRickAndMorty-Spring-API/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Exploit-Experts","download_url":"https://codeload.github.com/Exploit-Experts/RickAndMorty-Spring-API/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":230578422,"owners_count":18247974,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","java","maven","restful-api","spring"],"created_at":"2024-11-02T01:07:35.502Z","updated_at":"2026-03-08T20:32:22.309Z","avatar_url":"https://github.com/Exploit-Experts.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\" text-align=\"center\"\u003e\n    \u003cimg src=\"https://capsule-render.vercel.app/api?type=waving\u0026height=200\u0026color=gradient\u0026text=RickAndMorty%20API\u0026reversal=false\"\u003e\n\u003c/div\u003e\n\n\n# 🚀Rick and Morty Spring API\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)\n![GitHub pull requests](https://img.shields.io/github/issues-pr/Exploit-Experts/RickAndMorty-Spring-API)\n![GitHub contributors](https://img.shields.io/github/contributors/Exploit-Experts/RickAndMorty-Spring-API)\n\nRickAndMorty-Spring-API is a backend developed with Java and Spring Boot that implements a RESTful API to list data of characters from the Rick and Morty series. The project allows viewing character information and is prepared to be consumed by a separate front-end. \n\nThis service provides a robust base for integration with client interfaces that consume character data through endpoints.\n\n\u003c/br\u003e\n\n## 📋 Table of Contents\n- [🎯 Objective](#objective)\n- [🧑🏻‍💻 Credits](#credits)\n- [🛠️ Technologies Used](#technologies-used)\n- [📂 Installation and Execution](#installation-and-execution)\n- [📃 Endpoints](#endpoints)\n- [🤝 Contributing](#contributing)\n- [⚖️ License](#license)\n\n\u003c/br\u003e\n\n## Objective\n\nCreate a RESTful API that allows consuming and viewing data of characters from the Rick and Morty series, providing endpoints to be used in the [Angular front-end](https://github.com/Exploit-Experts/RickAndMorthy-client).\n\n\u003c/br\u003e\n\n## Credits\n\n||           |\n| ---------------- | ---------------- |\n| \u003cimg src=\"https://avatars.githubusercontent.com/u/114788642?v=4\" float=\"left\" width=\"40px\" height=40px\u003e | \u003ca href='https://github.com/brunoliratm'\u003eBruno Magno\u003c/a\u003e |\n| \u003cimg src=\"https://avatars.githubusercontent.com/u/127964717?v=4\" float=\"left\" width=\"40px\" height=40px\u003e | \u003ca href='https://github.com/Paulo-Araujo-Jr'\u003ePaulo de Araujo\u003c/a\u003e |\n| \u003cimg src=\"https://avatars.githubusercontent.com/u/126338859?v=4\" float=\"left\" width=\"40px\" height=40px\u003e | \u003ca href='https://github.com/MrMesquita'\u003eMarcelo Mesquita\u003c/a\u003e |\n| \u003cimg src=\"https://avatars.githubusercontent.com/u/126990110?v=4\" float=\"left\" width=\"40px\" height=40px\u003e | \u003ca href='https://github.com/Jonathanwsr'\u003eJonathan Rocha\u003c/a\u003e |\n| \u003cimg src=\"https://avatars.githubusercontent.com/u/180599406?v=4\" float=\"left\" width=\"40px\" height=40px\u003e | \u003ca href='https://github.com/Klismans-Nazario'\u003eKlismans Nazário\u003c/a\u003e |\n| \u003cimg src=\"https://avatars.githubusercontent.com/u/126925371?v=4\" float=\"left\" width=\"40px\" height=40px\u003e | \u003ca href='https://github.com/leandrouser'\u003eLeandro Oliveira\u003c/a\u003e |\n\n\u003c/br\u003e\n\n## Technologies Used\n\n- ![Java](https://img.shields.io/badge/Java-21-blue)\n- ![MySQL](https://img.shields.io/badge/database-MySQL-blue)\n- ![Spring Boot](https://img.shields.io/badge/Spring%20Boot-3.3.5-green)\n- ![Spring Boot](https://img.shields.io/badge/Maven-3.9.9-green)\n- ![Spring Data JPA](https://img.shields.io/badge/Spring%20Data%20JPA-3.3.4-green)\n- ![Lombok](https://img.shields.io/badge/Lombok-1.18.34-green)\n\n\u003c/br\u003e\n\n## Installation and Execution\n\n1. Clone the repository:\n```bash\ngit clone https://github.com/Exploit-Experts/RickAndMorty-Spring-API.git\n```\n\n2. Navigate to the project directory:\n```bash\ncd RickAndMorty-Spring-API\n```\n\n3. Copile project\n```java\nmvn clean install\n```\n\n4. Execute the jar\n```\njava -jar target/rickMorty-0.0.1-SNAPSHOT.jar\n```\n\n\u003c/br\u003e\n\n## Endpoints\n\n- **Characters**\n    - `GET /characters` - Retrieves all characters from the first page.\n    - `GET /characters?page=1` - Retrieves all characters from a specific page.\n    - `GET /characters`\n      - Parameters:\n        - `sort` (optional) - Sorts by a specific attribute (`NAME_ASC`, `NAME_DESC`, `STATUS_ASC`, `STATUS_DESC`).\n        - `name` (optional) - Filters characters by name.\n        - `status` (optional) - Filters characters by status (`ALIVE`, `DEAD`, `UNKNOWN`).\n        - `species` (optional) - Filters characters by species.\n        - `type` (optional) - Filters characters by type.\n        - `gender` (optional) - Filters characters by gender (`FEMALE`, `MALE`, `GENDERLESS`, `UNKNOWN`).\n    - `GET /characters/{id}` - Retrieves a specific character by ID.\n    - `GET /characters/avatar/{id}.jpeg` - Retrieves the avatar of a specific character by ID.\n\n- **Episodes**\n    - `GET /episodes` - Retrieves all episodes from the first page.\n    - `GET /episodes?page=2` - Retrieves all episodes from a specific page.\n    - `GET /episodes`\n      - Parameters:\n        - `name` (optional) - Filters episodes by name.\n        - `episode` (optional) - Filters episodes by code (expected format: `SXXEXX`).\n        - `sort` (optional) - Sorts episodes by name (`NAME_ASC`, `NAME_DESC`) or episode code (`EPISODE_CODE`, `EPISODE_CODE_DESC`).\n    - `GET /episodes/{id}` - Retrieves a specific episode by ID.\n\n- **Locations**\n    - `GET /locations` - Retrieves all locations from the first page.\n    - `GET /locations?page=2` - Retrieves all locations from a specific page.\n    - `GET /locations`\n      - Parameters:\n        - `name` (optional) - Filters locations by name.\n        - `type` (optional) - Filters locations by type.\n        - `dimension` (optional) - Filters locations by dimension.\n        - `sort` (optional) - Sorts locations by name (`NAME_ASC`, `NAME_DESC`), type (`TYPE_ASC`, `TYPE_DESC`), or dimension (`DIMENSION_ASC`, `DIMENSION_DESC`).\n    - `GET /locations/{id}` - Retrieves a specific location by ID.\n\n- **Users**\n    - `POST /users` - Registers a user by ID.\n    - `PUT /users/{id}` - Fully updates user data.\n    - `PATCH /users/{id}` - Partially updates user data by ID.\n    - `DELETE /users/{id}` - _(soft delete)_ Deletes the user by ID.\n\n- **Favorites**\n    - `POST /favorites` - Registers a favorite and associates it with a user.\n    - `GET /favorites/{userId}` - Retrieves all favorites for a specific user.\n      - Parameters:\n        - `page` (optional, default: 0) - The page number to retrieve.\n        - `size` (optional, default: 10) - The number of items per page.\n        - `sort` (optional, default: \"asc\") - Sorts by ID in ascending or descending order.\n    - `DELETE /favorites/{userId}/{favoriteId}` - Removes a specific favorite for a user.\n    - `DELETE /favorites/{userId}` - Removes all favorites for a user.\n\n### Swagger Documentation\n\nThe API documentation is available via Swagger. You can access it by navigating to the following URL after running the application: `http://localhost:8080/swagger-ui/index.html`\n\nThis documentation provides a detailed description of all available endpoints, their parameters, and responses, making it easier to understand and interact with the API.\n\n\u003c/br\u003e\n\n## Contributing\n\n\u003cp\u003eWe welcome contributions from the open-source community. If you have any ideas, bug fixes, or feature requests, feel free to submit a pull request.\u003c/p\u003e\n\n\u003c/br\u003e\n\n## Roadmap\n- [x] Implement the remaining endpoints.\n- [x] Implement the remaining users and favorites operations.\n- [x] Implement the remaining features.\n\n\u003c/br\u003e\n\n## License\n\nThis project is licensed under the MIT License. See the [LICENSE](LICENSE) file for more information.\n\n\n### References\n- [Java 21 Documentation](https://docs.oracle.com/en/java/javase/21/)\n- [Spring Boot](https://spring.io/projects/spring-boot)\n- [Lombok](https://projectlombok.org/)\n\n\u003cimg src=\"https://capsule-render.vercel.app/api?type=waving\u0026height=200\u0026color=gradient\u0026reversal=false\u0026section=footer\"\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fexploit-experts%2Frickandmorty-spring-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fexploit-experts%2Frickandmorty-spring-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fexploit-experts%2Frickandmorty-spring-api/lists"}