Repositório com código da API Spring Boot para o website www.vulcannovel.com.br. A API responde a requisições vindas tanto do Client quanto do servidor da Vulcan e trata os dados recebidos antes de salvá-los na base de dados, assim como retorna os dados requisitados de maneira precisa, utilizando JSON como linguagem de comunicação.
Client: Interface construída para que o usuário possa interagir com a API (em produção).
Plugin: Plugin para Wordpress escrito na linguagem PHP, responsável por intermediar a comunicação entre o website e algumas funcionalidade da API
Bot: Responsável pela comunicação entre o Discord, onde a Vulcan possui uma comunidade ativa, e a API. Suas principais funções são o gerenciamento da avaliação de novos autores e a atualização manual de alguns dados da API, feito pela staff da Vulcan no Discord.
Todos os endpoints com v1
são privados e necessitam de um cabeçalho chamado Api-Key
para serem acessados, caso não haja chave de acesso, o endpoint retornará o status code 401 (UNAUTHORIZED) com uma mensagem descrevendo o erro.
As novels são os objetos centrais do sistema da Vulcan, o banco de dados da API não trata do conteúdo das novels, como os capítulos.
Método | Endpoint | Status | Parâmetros | RequestBody | ResponseBody |
---|---|---|---|---|---|
GET | /nekoyasha7/jvulcan-api/v1/novels |
🟢 | Ver Parâmetros | -- | -- |
PUT | /nekoyasha7/jvulcan-api/v1/novels/views |
🟢 | --- | --- | Ver ResponseBody |
PUT | /nekoyasha7/jvulcan-api/v1/novels/rankings/total |
🟢 | --- | --- | Ver ResponseBody |
PUT | /nekoyasha7/jvulcan-api/v1/novels/novel |
🔴 | --- | -- | -- |
POST | /nekoyasha7/jvulcan-api/v1/novels/novel |
🟢 | --- | NovelDTO [Object] | -- |
POST | /nekoyasha7/jvulcan-api/v1/novels/novel/cargo |
🟢 | --- | Ver RequestBody | Ver ResponseBody |
Este endpoint retorna uma array com todas as novels cadastradas na base de dados
?nacionalidade
: Filtro que retorna apenas novels com a nacionalidade especificada. Até o momento, nav1
, não é possível especificar mais de uma nacionalidade, caso precise de um filtro mais amplo, veja a seção 1.1.2.
Nacionalidades | Descrição |
---|---|
oci | Ocidental |
jp | Japonesa |
ch | Chinesa |
co | Corenana |
br | Brasileira |
?tipo
: Filtro que retorna apenas novels do tipo especificado. Os tipos são "traduções", que englobam as nacionalidades "oci", "jp", "ch" e "co", e "originais", que se limitam apenas às novels brasileiras (ver seção 1.1.1).
[
{
"id": 1,
"colocacao": 1,
"colocacaoMensal": 2,
"viewsTotais": 3355365,
"viewsMensais": 50610,
"slug": "ch-tlm-o-lendario-mecanico",
"nome": "O Lendário Mecânico",
"nacionalidade": "ch",
"capa": "https://vulcannovel.com.br/wp-content/uploads/2022/05/O-Lendario-Mecanico-Capa-Vulcan-225x300.jpg",
"indice": "tlm-o-lendario-mecanico",
"autor": "Asu",
"quantidadeCapitulos": "1463",
"cargo": "Tradutor",
"status": "completo",
"generos": "[\"acao\",\"aventura\",\"comedia\",\"fantasia\",\"mecha\",\"sci-fi\",\"sobrenatural\"]",
"escritor": "chocolion",
"estrelas": "4.83",
"dataCriacaoIndice": "1019-02-26 16:47:11",
"sinopse": "O Lendá1rio Mecânico. O que você faz quando acorda e se encontra dentro do próprio jogo que voc...",
"idCargo": "944186423051968553"
}
]
Endpoint que atualiza as visualizações totais de todas as novels cadastradas na base de dados.
{
"response": "Novels atualizadas com sucesso!"
}
Endpoint que chama o serviço para reorganizar o "colocação total" das novels cadastradas na base de dados segundo as suas views totais.
Os dados a seguir são apenas exemplos de resposta da requisição.[
{
"nome": "O Lendário Mecânico",
"colocacao_total" : 1
}
{
"nome": "Meu Sistema Ocioso",
"colocacao_total" : 33
}
{
"nome": "Sistema de Alta Tecnologia do Gênio",
"colocacao_total" : 59
}
]
Endpoint para cadastrar cargos de novels, o nome do cargo precisa ser exatamente o mesmo da novel, caso contrário, será lançada a exceção "ObjectNotFound".
Os dados a seguir são apenas exemplos de resposta da requisição.{
"cargo" : "Sonhos de Outro Mundo",
"id" : "98765323111394"
}
{
"cargo" : "Sonhos de Outro Mundo",
"id" : "98765323111394"
}
Método | Endpoint | Parâmetros | Body |
---|---|---|---|
GET | /nekoyasha7/jvulcan-api/v1/banners |
?max (Integer, Opcional) |
|
GET | /nekoyasha7/jvulcan-api/v1/banners/banner |
-- | -- |
POST | /nekoyasha7/jvulcan-api/v1/banners |
-- | |
DELETE | /nekoyasha7/jvulcan-api/v1/banners/{id} |
-- |
Método | Endpoint | Parâmetros | Body |
---|---|---|---|
POST | /nekoyasha7/jvulcan-api/v1/posts/post |
-- | -- |