Uma API backend local e minimalista focada no universo de The Witcher, construída utilizando Node.js e Express. Esta API foi desenvolvida sob medida para praticar frontend em React, simulando chamadas HTTP para buscar e criar dados.
- Certifique-se de ter o Node.js instalado.
- Navegue até o diretório do projeto:
cd /Users/hmilena/.gemini/antigravity/scratch/witcher-api - Instale as dependências caso ainda não tenha feito:
npm install
- Inicie o servidor em modo de desenvolvimento:
npm run dev
O servidor estará rodando na porta 3001 (
http://localhost:3001).
A API possui o roteamento de CORS liberado para aceitar chamadas do seu app React sem problemas. Os dados estão armazenados localmente no arquivo data.json.
Todas as rotas seguem o padrão RESTful (retornando JSON) e estão no caminho base /api/.
GET /api/characters: Retorna a lista de todos os personagens.POST /api/characters: Cria um novo personagem.- Exemplo de body JSON:
{ "name": "Vesemir", "profession": "Witcher" }
- Exemplo de body JSON:
GET /api/weapons: Retorna a lista de armas.POST /api/weapons: Adiciona uma nova arma.
GET /api/books: Retorna a lista dos livros.POST /api/books: Adiciona um novo livro.
GET /api/media: Retorna a lista de filmes/séries e jogos.POST /api/media: Adiciona uma nova mídia.
// Exemplo de como buscar personagens na sua Home.jsx
import { useEffect, useState } from "react";
export default function WitcherList() {
const [characters, setCharacters] = useState([]);
useEffect(() => {
fetch("http://localhost:3001/api/characters")
.then((res) => res.json())
.then((data) => setCharacters(data))
.catch((err) => console.error(err));
}, []);
return (
<ul>
{characters.map((char) => (
<li key={char.id}>
{char.name} ({char.profession})
</li>
))}
</ul>
);
}Boa codificação e divirta-se praticando React no Continente! 🐺🗡️