Server backend per la gestione dei progetti del portfolio.
Autenticazione per l'accesso all'API.
Headers richiesti
x-api-key: token-autenticazione-api
Body
{
"email": "email-utente",
"password": "password-utente"
}Risposta
{
"token": "token-jwt"
}Recupera tutti i progetti dal database.
Risposta
{
"projects": [
{
"id": 1,
"name": "nome-progetto",
"description": "descrizione del progetto",
"image": "url-immagine",
"technologies": ["tech1", "tech2"],
"readme": "contenuto markdown del readme",
"createdAt": "2024-03-20T...",
"updatedAt": "2024-03-20T..."
}
]
}Recupera un singolo progetto per ID dal database.
Risposta
{
"id": 1,
"name": "nome-progetto",
"description": "descrizione del progetto",
"image": "url-immagine",
"technologies": ["tech1", "tech2"],
"readme": "contenuto markdown del readme",
"createdAt": "2024-03-20T...",
"updatedAt": "2024-03-20T..."
}Crea un nuovo progetto.
Headers richiesti
x-api-key: token-autenticazione-api
Authorization: Bearer token-jwt
Body
{
"name": "nome-progetto",
"description": "descrizione del progetto",
"image": "url-immagine",
"technologies": ["tech1", "tech2"]
}Risposta
{
"message": "Progetto creato con successo",
"project": {
"id": 1,
"name": "nome-progetto",
"description": "descrizione del progetto",
"image": "url-immagine",
"technologies": ["tech1", "tech2"],
"readme": "contenuto markdown del readme",
"createdAt": "2024-03-20T...",
"updatedAt": "2024-03-20T..."
}
}Aggiorna un progetto esistente.
Headers richiesti
x-api-key: token-autenticazione-api
Authorization: Bearer token-jwt
Body
Solo i campi che vengono modificati devono essere presenti nel body.
{
"name": "nome-progetto",
"description": "descrizione del progetto",
"image": "url-immagine",
"technologies": ["tech1", "tech2"]
}Risposta
{
"message": "Progetto aggiornato con successo",
"project": {
"id": 1,
"name": "nome-progetto",
"description": "descrizione del progetto",
"image": "url-immagine",
"technologies": ["tech1", "tech2"],
"readme": "contenuto markdown del readme",
"createdAt": "2024-03-20T...",
"updatedAt": "2024-03-20T..."
}
}Elimina un progetto esistente.
Headers richiesti
x-api-key: token-autenticazione-api
Authorization: Bearer token-jwt
Risposta
{
"message": "Progetto eliminato con successo"
}Sincronizza i progetti dal repository GitHub con il database.
Headers richiesti
x-api-key: token-autenticazione-api
Authorization: Bearer token-jwt
Risposta
{
"message": "Sincronizzati X progetti con successo",
"totalProjects": 33,
"syncedProjects": 33,
"errors": [],
"projects": ["nome-progetto-1", "nome-progetto-2"]
}Le API restituiscono i seguenti codici di stato:
- 200: Successo
- 400: Richiesta non valida
- 401: Non autorizzato
- 404: Risorsa non trovata
- 500: Errore del server
In caso di errore, la risposta avrà questo formato:
{
"message": "Messaggio di errore",
"errors": ["Dettaglio errore 1", "Dettaglio errore 2"]
}Per avviare il server in modalità sviluppo:
pnpm devPer la produzione:
pnpm startQuesto progetto è distribuito con licenza ISC. Vedi il file LICENSE per maggiori dettagli.