# Esempi di Richieste API - Local Translation Server
## Health Check
```bash
curl -X GET "http://localhost:7860/"
```
## Ottenere le lingue supportate
```bash
curl -X GET "http://localhost:7860/languages"
```
## Traduzione singola (GET con parametri)
```bash
# Traduzione semplice
curl -X POST "http://localhost:7860/translate-single?text=Ciao%20mondo&target_language=en"
# Traduzione con HTML
curl -X POST "http://localhost:7860/translate-single?text=%3Cp%3ECiao%20%3Cstrong%3Emondo%3C/strong%3E%3C/p%3E&target_language=fr"
# Traduzione con placeholder
curl -X POST "http://localhost:7860/translate-single?text=Ciao%20%7Bname%7D%2C%20come%20stai%3F&target_language=de"
```
## Traduzione di oggetti locale complessi
### Esempio base
```bash
curl -X POST "http://localhost:7860/translate?target_language=en" \
-H "Content-Type: application/json" \
-d '{
"locales": {
"welcome": "Benvenuto!",
"save_button": "Salva",
"cancel_button": "Annulla"
}
}'
```
### Esempio con HTML e placeholder
```bash
curl -X POST "http://localhost:7860/translate?target_language=fr" \
-H "Content-Type: application/json" \
-d '{
"locales": {
"welcome_message": "Benvenuto nella nostra applicazione, {username}!",
"notification_html": "
Info: Hai {count} nuovi messaggi
",
"button_save": "Salva documento",
"error_required": "Questo campo è obbligatorio",
"success_message": "Operazione completata con successo!
"
}
}'
```
### Esempio per applicazione web complessa
```bash
curl -X POST "http://localhost:7860/translate?target_language=de" \
-H "Content-Type: application/json" \
-d '{
"locales": {
"nav_home": "Home",
"nav_products": "Prodotti",
"nav_contact": "Contatti",
"hero_title": "Benvenuto nel futuro",
"hero_subtitle": "La tecnologia che cambia il mondo",
"cta_button": "Scopri di più",
"form_name_label": "Nome completo",
"form_email_label": "Indirizzo email",
"form_message_label": "Il tuo messaggio",
"form_submit": "Invia messaggio",
"validation_required": "Questo campo è obbligatorio",
"validation_email": "Inserisci un indirizzo email valido",
"success_notification": "Grazie! Il tuo messaggio è stato inviato
",
"error_notification": "Errore: Si è verificato un problema
",
"user_greeting": "Ciao {firstName}, bentornato!",
"items_count": "Hai {itemCount} elementi nel carrello",
"last_login": "Ultimo accesso: {lastLoginDate}",
"footer_copyright": "© 2024 La Nostra Azienda. Tutti i diritti riservati."
}
}'
```
### Traduzione verso lingue diverse
```bash
# Inglese
curl -X POST "http://localhost:7860/translate?target_language=en" \
-H "Content-Type: application/json" \
-d '{"locales": {"greeting": "Buongiorno!", "goodbye": "Arrivederci!"}}'
# Francese
curl -X POST "http://localhost:7860/translate?target_language=fr" \
-H "Content-Type: application/json" \
-d '{"locales": {"greeting": "Buongiorno!", "goodbye": "Arrivederci!"}}'
# Tedesco
curl -X POST "http://localhost:7860/translate?target_language=de" \
-H "Content-Type: application/json" \
-d '{"locales": {"greeting": "Buongiorno!", "goodbye": "Arrivederci!"}}'
# Spagnolo
curl -X POST "http://localhost:7860/translate?target_language=es" \
-H "Content-Type: application/json" \
-d '{"locales": {"greeting": "Buongiorno!", "goodbye": "Arrivederci!"}}'
# Russo
curl -X POST "http://localhost:7860/translate?target_language=ru" \
-H "Content-Type: application/json" \
-d '{"locales": {"greeting": "Buongiorno!", "goodbye": "Arrivederci!"}}'
# Giapponese
curl -X POST "http://localhost:7860/translate?target_language=ja" \
-H "Content-Type: application/json" \
-d '{"locales": {"greeting": "Buongiorno!", "goodbye": "Arrivederci!"}}'
# Cinese
curl -X POST "http://localhost:7860/translate?target_language=zh" \
-H "Content-Type: application/json" \
-d '{"locales": {"greeting": "Buongiorno!", "goodbye": "Arrivederci!"}}'
```
## Test degli errori
### Lingua non supportata
```bash
curl -X POST "http://localhost:7860/translate?target_language=xyz" \
-H "Content-Type: application/json" \
-d '{"locales": {"test": "Ciao"}}'
```
### Body malformato
```bash
curl -X POST "http://localhost:7860/translate?target_language=en" \
-H "Content-Type: application/json" \
-d '{"wrong_field": "test"}'
```
### Parametro mancante
```bash
curl -X POST "http://localhost:7860/translate" \
-H "Content-Type: application/json" \
-d '{"locales": {"test": "Ciao"}}'
```
## Esempi usando JavaScript (fetch)
```javascript
// Traduzione di oggetti locale
const translateLocales = async () => {
const response = await fetch(
"http://localhost:7860/translate?target_language=en",
{
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify({
locales: {
welcome: "Benvenuto!",
save_button: "Salva",
cancel_button: "Annulla",
},
}),
}
);
const data = await response.json();
console.log(data);
};
// Ottenere lingue supportate
const getSupportedLanguages = async () => {
const response = await fetch("http://localhost:7860/languages");
const data = await response.json();
console.log("Lingue supportate:", data.supported_languages);
};
// Traduzione singola
const translateSingle = async () => {
const response = await fetch(
"http://localhost:7860/translate-single?text=Ciao mondo&target_language=en",
{
method: "POST",
}
);
const data = await response.json();
console.log(data);
};
```
## Esempi usando Python (requests)
```python
import requests
# Traduzione di oggetti locale
def translate_locales():
url = "http://localhost:7860/translate"
params = {"target_language": "en"}
data = {
"locales": {
"welcome": "Benvenuto!",
"save_button": "Salva",
"cancel_button": "Annulla"
}
}
response = requests.post(url, json=data, params=params)
print(response.json())
# Ottenere lingue supportate
def get_supported_languages():
response = requests.get("http://localhost:7860/languages")
print(response.json())
# Traduzione singola
def translate_single():
url = "http://localhost:7860/translate-single"
params = {
"text": "Ciao mondo",
"target_language": "en"
}
response = requests.post(url, params=params)
print(response.json())
```