Bem-vindo ao Parcerias SERPRO!
Eu sou o José Henrique, estagiário no departamento de Governança de Inovação do SERPRO. Durante minha jornada profissional, percebi a necessidade de melhorar o gerenciamento das parcerias e convênios divulgados no portal do SERPRO, que antes eram organizados manualmente em planilhas. Essa abordagem causava dificuldades para visualizar todas as parcerias ou pesquisar por uma específica de forma eficiente.
Com isso, decidi criar este projeto como uma API RESTful utilizando Java e Spring Boot, com o objetivo de otimizar o processo de cadastro, busca, atualização e deleção dessas parcerias. A ideia é substituir o uso de planilhas por uma solução mais ágil, permitindo que os usuários acessem, gerenciem e encontrem as informações de maneira mais prática e organizada.
Além disso, foi feito o deploy do projeto no Render e integrado ao frontend em Next.js, criando assim uma aplicação fullstack.
- Criar uma nova parceria
- Listar todas as parcerias
- Buscar parceria por ID
- Atualizar parceria existente
- Deletar parceria por ID
- Java 17
- Spring Boot 3
- Spring Data JPA
- PostgreSQL
- Docker
- Springdoc OpenAPI (Swagger UI)
- Render
- A API foi publicada no Render e integrada a um banco de dados PostgreSQL.
git clone https://github.com/jhenriquedsm/parcerias-serpro.git
cd parcerias-serpro
CREATE DATABASE parcerias_serpro;
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
spring.datasource.username=seu_usuario
spring.datasource.password=sua_senha
spring.datasource.url=jdbc:postgresql://localhost:5432/seu_banco
spring.jpa.generate-ddl=true
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
./mvnw spring-boot:run
A API estará disponível em: http://localhost:8080/parcerias
Você pode testar os endpoints usando o Swagger: http://localhost:8080/swagger-ui.html
POST /parcerias
Content-Type: application/json
{
"title": "Parceria com o Governo Federal",
"url": "https://www.serpro.gov.br/parcerias/parceria-exemplo",
"newsDate": "2025-04-18"
}
PUT /parcerias/{id}
Content-Type: application/json
{
"title": "Parceria com o Governo Federal Exemplo",
"url": "https://www.serpro.gov.br/parcerias/parceria-exemplo",
"newsDate": "2025-04-17"
}
GET /parcerias/
Exemplo de resposta (200 OK):
[
{
"id": 1,
"title": "Parceria com o Governo Federal",
"url": "https://www.serpro.gov.br/parcerias/parceria-exemplo",
"newsDate": "2025-04-18"
},
{
"id": 2,
"title": "Parceria com o Governo Federal Exemplo",
"url": "https://www.serpro.gov.br/parcerias/parceria-exemplo",
"newsDate": "2025-04-17"
}
]
GET /parcerias/{id}
Exemplo de resposta (200 OK):
[
{
"id": 1,
"title": "Parceria com o Governo Federal",
"url": "https://www.serpro.gov.br/parcerias/parceria-exemplo",
"newsDate": "2025-04-18"
}
]
DELETE /parcerias/{id}
Exemplo de resposta (204 NoContent):
(no body - a resposta está vazia)
src/main/java/jhenriquedsm/parcerias_serpro
├── controllers
├── model
├── repositories
├── services
├── exceptions
└── config
Desenvolvido com ❤️ por José Henrique
🔗 LinkedIn | 🐙 GitHub