Skip to content

API (Spring Boot), API-Client e Plugin (PHP) desenvolvido para o website "Vulcan Novels"

Notifications You must be signed in to change notification settings

giovaneneves7/Vulcan-API

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

VADOC (Vulcan API Documentation - em construção)

image

🔎 Sobre:

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.

⚙ Tecnologias e Linguagens Utilizadas no Projeto:

Java Azure Docker Spring PHP CSS HTML JS Intellij Wordpress MySQL Bootstrap JSON POSTMAN Ngrok

📁 Outras Partes do Sistema:

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.

📑 Lista de endpoints

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.

1. Novels

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

  • 1.1 GET /nekoyasha7/jvulcan-api/v1/novels:

Este endpoint retorna uma array com todas as novels cadastradas na base de dados

Parâmetros:

  • ?nacionalidade: Filtro que retorna apenas novels com a nacionalidade especificada. Até o momento, na v1, 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).

ResponseBody (NovelComCargoDto):

Os dados a seguir são apenas exemplos de resposta da requisição.

[
  {
    "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"
  }
]
  • 1.2 PUT /nekoyasha7/jvulcan-api/v1/novels/views:

Endpoint que atualiza as visualizações totais de todas as novels cadastradas na base de dados.

ResponseBody (String):

{

"response": "Novels atualizadas com sucesso!"

}
  • 1.3 PUT /nekoyasha7/jvulcan-api/v1/novels/rankings/total:

Endpoint que chama o serviço para reorganizar o "colocação total" das novels cadastradas na base de dados segundo as suas views totais.

ResponseBody (List< NovelComRankingTotalAtualizadoDto >):

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
  }

]
  • 1.4 POST /nekoyasha7/jvulcan-api/v1/novels/novel/cargo:

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".

RequestBody (CadastrarNovelDto):

Os dados a seguir são apenas exemplos de resposta da requisição.

{

  "cargo" : "Sonhos de Outro Mundo",
  "id" : "98765323111394"

}

ResponseBody (NovelComCargoDto):

Os dados a seguir são apenas exemplos de resposta da requisição.

{

  "cargo" : "Sonhos de Outro Mundo",
  "id" : "98765323111394"

}

2. Banners

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} --

3. Postagens

Método Endpoint Parâmetros Body
POST /nekoyasha7/jvulcan-api/v1/posts/post -- --

Releases

No releases published

Packages

No packages published

Languages