Skip to content

GabrielRoOl/API_Series

Repository files navigation

Integration API for Series Platform 💻

API developed as a professional development project, integrating with IBM's public API to create a comprehensive database of series and films, with its own episode and season structure.

🔍 Main Features:

  • Data consumption and processing from IBM's public API
  • Storage in a PostgreSQL database
  • RESTful endpoints for queries
  • Season and episode management
  • Top 5 highest-rated series in the database
  • Filters by release date

🎯 Objetivos do Projeto:

  • Practice API implementation with Java and Spring Boot
  • Implement MVC, OOP, ORM, and other architectural patterns
  • Develop complex queries in relational databases
  • Create comprehensive API documentation

TechnologiesGetting StartedAPI EndpointsCollaboratorsContributeContact

💻 Technologies

  • Java
  • PostgreSQL
  • Config Cors
  • Spring Boot
  • IntelLij
  • Designer pattern
  • MVC - Model-View-Controller
  • POO - Object-Oriented Programming
  • ORM - Object-Relational Mapping
  • Data base config

🚀 Getting started

Prerequesites

git clone https://github.com/GabrielRoOl/API_Series.git

Config .env variables

Use the .env.example as reference to create your configuration file .env with your AWS Credentials

spring.datasource.url=jdbc:postgresql://${DB_HOST}/${DB_NAME}
spring.datasource.username=${DB_USER}
spring.datasource.password=${DB_PASSWORD}

Starting

How to start your project

cd API_Series

Run the project

 1 - Buscar séries
 2 - Buscar episódios
 3 - Listar séries buscadas
 4 - Buscar série por título
 5 - Buscar séries por ator e avaliação mínima
 6 - Top 5 séries com melhor avaliação
 7 - Buscar séries pela categoria
 8 - Filtrar séries
 9 - Buscar episodio pro trecho
10 - Top 5 episódios por série
11 - Buscar episódios a partir de uma data

0 - Sair

Search for the series you want to add to your database

📍 API Endpoints

Here you can list the main routes of your API, and what are their expected request bodies. ​

route description
GET /series retrieves information from all series response details
GET /series/top5 retrieves information from the top 5 series request details
GET /series/lancamentos retrieve series information according to release request details
GET /series/{id} retrieve information from a series by id request details
GET /{id}/temporadas/todas returns all seasons and all episodes request details
GET /{id}/temporadas/{numero} returns the season by number request details
GET /categoria/{nome} returns the season by number request details

GET /series

RESPONSE

[
  {
    "id": 1,
    "titulo": "Friends",
    "totalTemporadas": 10,
    "avaliacao": 8.9,
    "escritor": "David Crane, Marta Kauffman",
    "atores": "Jennifer Aniston, Courteney Cox, Lisa Kudrow",
    "poster": "https://m.media-amazon.com/images/M/MV5BOTU2YmM5ZjctOGVlMC00YTczLTljM2MtYjhlNGI5YWMyZjFkXkEyXkFqcGc@._V1_SX300.jpg",
    "sinopse": "https://m.media-amazon.com/images/M/MV5BOTU2YmM5ZjctOGVlMC00YTczLTljM2MtYjhlNGI5YWMyZjFkXkEyXkFqcGc@._V1_SX300.jpg"
  }
]

GET /series/top5

RESPONSE

[
  {
    "id": 1,
    "titulo": "Friends",
    "totalTemporadas": 10,
    "avaliacao": 8.9,
    "escritor": "David Crane, Marta Kauffman",
    "atores": "Jennifer Aniston, Courteney Cox, Lisa Kudrow",
    "poster": "https://m.media-amazon.com/images/M/MV5BOTU2YmM5ZjctOGVlMC00YTczLTljM2MtYjhlNGI5YWMyZjFkXkEyXkFqcGc@._V1_SX300.jpg",
    "sinopse": "https://m.media-amazon.com/images/M/MV5BOTU2YmM5ZjctOGVlMC00YTczLTljM2MtYjhlNGI5YWMyZjFkXkEyXkFqcGc@._V1_SX300.jpg"
  },
  {
    "id":3,
    // ... dados da serie
  },
  {
    "id":7,
    // ... dados da serie
  },
  {
    "id":8,
    // ... dados da serie
  },
  {
    "id":2,
    // ... dados da serie
  }
]

GET /series/lancamentos

RESPONSE

[
  {
    "id":8,
    // ... dados da serie
  }, 
  {
    "id":7,
    // ... dados da serie
  },
  // ...demais series
]

GET /series/2

RESPONSE

[
  {
    "id": 2,
    "titulo": "How I Met Your Mother",
    "totalTemporadas": 9,
    "avaliacao": 8.3,
    "escritor": "Carter Bays, Craig Thomas",
    "atores": "Josh Radnor, Jason Segel, Cobie Smulders",
    "poster": "https://m.media-amazon.com/images/M/MV5BNjg1MDQ5MjQ2N15BMl5BanBnXkFtZTYwNjI5NjA3._V1_SX300.jpg",
    "sinopse": "https://m.media-amazon.com/images/M/MV5BNjg1MDQ5MjQ2N15BMl5BanBnXkFtZTYwNjI5NjA3._V1_SX300.jpg"
  }
]

GET /1/temporadas/todas

RESPONSE

[
  {
    "temporada": 1,
    "titulo": "The One Where Monica Gets a Roommate",
    "numeroEpisodio": 1
  },
  // ...demais temporadas e episódios
]

GET /1/temporadas/1

RESPONSE

[
  {
    "temporada": 1,
    "titulo": "The One Where Monica Gets a Roommate",
    "numeroEpisodio": 1
  },
  // ...demais temporadas e episódios
]

🤝 Collaborators

Developer

Mentoring & Educational content

  • Alura - Java/Spring Boot courses and training that supported the project

Contribute

This is a research project, but contributions are welcome! Here's the guide to participating:

  1. Fork the project
  2. Clone your fork locally:
    https://github.com/your_user/API_Series.git
  3. Create a branch for your feature:
    git checkout -b your-feature
  4. Commit your changes:
    git commit -m "feat: new feature"
  5. Push to your branch:
    git push origin your-feature

📮 Contact


LinkedinGithub61 9 91929185gabriel.ro.ol@hotmail.com


⬆️ Back to top

About

Working with Lambdas, Streams and Spring Framework

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages