Documentazione completa degli endpoint REST e WebSocket. Tutte le richieste autenticate richiedono header Authorization: Bearer <jwt_token>
Base URL: https://shutappchat.fabiodirauso.it/api/v2/
Registra un nuovo utente
| Parametro | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
| username | string | Sì | 3-20 caratteri |
| password | string | Sì | Minimo 6 caratteri |
| nickname | string | Sì | Nome visualizzato |
Login utente esistente
| Parametro | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
| username | string | Sì | Username |
| password | string | Sì | Password |
Rinnova il token JWT (richiede token valido)
Cerca utenti per username
| Parametro | Tipo | Descrizione |
|---|---|---|
| q | string | Query di ricerca (minimo 2 caratteri) |
Ottieni profilo pubblico di un utente
Ottieni il proprio profilo completo
Aggiorna nickname e stato
| Parametro | Tipo | Descrizione |
|---|---|---|
| nickname | string | Nuovo nickname |
| status | string | Stato (es. "Disponibile") |
Aggiorna immagine profilo
Lista di tutti i contatti accettati
Richieste di contatto in sospeso
Invia richiesta di amicizia
| Parametro | Tipo | Descrizione |
|---|---|---|
| recipient_username | string | Username destinatario |
Rispondi a una richiesta (accetta/rifiuta)
| Parametro | Tipo | Valori |
|---|---|---|
| request_id | int | ID richiesta |
| action | string | "accept" o "reject" |
Rimuovi un contatto
Invia un messaggio (1-a-1 o gruppo)
| Parametro | Tipo | Descrizione |
|---|---|---|
| recipient_id | int | ID utente destinatario (per chat 1-a-1) |
| group_id | int | ID gruppo (per messaggi di gruppo) |
| content | string | Testo del messaggio |
| media_id | int | ID media allegato (opzionale) |
Ottieni messaggi pendenti (non consegnati durante offline)
Crea una sessione di upload media
| Parametro | Tipo | Descrizione |
|---|---|---|
| filename | string | Nome file originale |
| file_size | int | Dimensione in byte |
| media_type | string | "image", "video", "document" |
Upload del file binario
Lista gruppi di cui fai parte
Crea un nuovo gruppo
| Parametro | Tipo | Descrizione |
|---|---|---|
| group_name | string | Nome gruppo |
| description | string | Descrizione |
| mode | string | "OPEN" (tutti postano) / "RESTRICTED" (solo admin) |
Informazioni dettagliate gruppo
Lista membri del gruppo
Aggiungi membri (solo admin)
| Parametro | Tipo | Descrizione |
|---|---|---|
| user_ids | int[] | Array di ID utenti |
Rimuovi membro (solo admin)
Cambia ruolo membro
| Parametro | Tipo | Valori |
|---|---|---|
| role | string | "ADMIN" o "MEMBER" |
Modifica impostazioni gruppo (solo admin)
| Parametro | Tipo | Descrizione |
|---|---|---|
| group_name | string | Nuovo nome |
| description | string | Nuova descrizione |
| mode | string | "OPEN" o "RESTRICTED" |
Elimina gruppo (solo admin creatore)
URL: wss://shutappchat.fabiodirauso.it/ws
| Tipo | Payload | Descrizione |
|---|---|---|
| message | {"recipient_id":1,"content":"..."} | Messaggio diretto |
| group_message | {"group_id":5,"content":"..."} | Messaggio gruppo |
| typing | {"recipient_id":1,"isTyping":true} | Stato digitazione |
| read_receipt | {"message_id":123} | Conferma lettura |
| Tipo | Descrizione |
|---|---|
| message | Nuovo messaggio ricevuto |
| group_message | Messaggio gruppo ricevuto |
| system | Notifica di sistema |
| group_updated | Gruppo modificato |
| session_expired | Token scaduto, riconnettiti |
| typing | Utente sta digitando |
| Endpoint | Limite | Finestra |
|---|---|---|
| /auth/* | 10 richieste | 1 minuto |
| /api/v2/* (generale) | 100 richieste | 1 minuto |
| /media/* | 20 richieste | 1 minuto |
| WebSocket messages | 50 messaggi | 1 minuto |
| Codice | Significato |
|---|---|
| 400 | Bad Request - Parametri mancanti/non validi |
| 401 | Unauthorized - Token mancante/non valido |
| 403 | Forbidden - Permessi insufficienti |
| 404 | Not Found - Risorsa non trovata |
| 429 | Too Many Requests - Rate limit superato |
| 500 | Internal Server Error - Errore server |