Utilidades de contenido
Los códigos QR de credenciales WiFi, tarjetas de contacto (vCard) y geolocalización usan formatos de texto específicos. Estos endpoints montan la cadena por ti para que puedas pasarla directamente a /api/qr/generate como content.
Los tres endpoints aceptan JSON y devuelven JSON. No renderizan nada: solo construyen cadenas.
WiFi
POST /api/qr/content/wifi
{
"ssid": "MyNetwork",
"password": "supersecret",
"encryption": "WPA",
"hidden": false
}
Respuesta:
{
"success": true,
"content": "WIFI:T:WPA;S:MyNetwork;P:supersecret;H:false;;"
}
encryption: WPA, WEP o nopass.
vCard
POST /api/qr/content/vcard
{
"firstName": "Ada",
"lastName": "Lovelace",
"organization": "Analytical Engine Co.",
"title": "Programmer",
"phone": "+44 20 7946 0958",
"email": "ada@example.com",
"url": "https://adalovelace.example",
"address": "10 Downing St, London"
}
Respuesta: una cadena vCard 3.0 completa, lista para codificar.
Geo
POST /api/qr/content/geo
{
"latitude": 40.4168,
"longitude": -3.7038,
"query": "Plaza Mayor, Madrid"
}
Respuesta:
{
"success": true,
"content": "geo:40.4168,-3.7038?q=Plaza%20Mayor%2C%20Madrid"
}
query es opcional: añade una etiqueta que leen Google Maps y Apple Maps.
Por qué existen
Podrías construir las cadenas tú mismo, pero los formatos tienen casos límite (el escapado en las contraseñas WiFi, el plegado de líneas en vCard, la codificación URI en Geo). Las utilidades se encargan de ellos para que una errata no deje a un cliente con un QR que abre «MyNetwork P:supersecret» como SSID.
Patrón
1. POST to /api/qr/content/{wifi|vcard|geo} → get the content string
2. POST that string as `content` to /api/qr/generate → get the QR
También puedes pasar la cadena montada directamente al endpoint de IA como content si quieres que la IA dé estilo al QR de WiFi, vCard o Geo.