# registerNuiCallback (Cliente)

> Registra una función que la página de interfaz del recurso que llama invoca con un `fetch` a `/nombre` en su propia dirección.

- **Plataforma**: MY Multiplayer (MYMP)
- **Tipo**: Función Lua
- **Lado**: Cliente
- **Categoría**: Interfaz web
- **URL**: https://wiki.mymp.gg/es/registerNuiCallback

## Sintaxis

```lua
bool registerNuiCallback(string name, function handler)
```

## Parámetros

| Nombre | Tipo | Descripción |
| --- | --- | --- |
| `name` | `string` | Nombre del callback, la ruta que pide la página sin la `/`. |
| `handler` | `function` | Función llamada con `(data, cb)`: `data` es el cuerpo del pedido leído como JSON (una tabla vacía si está vacío o es inválido) y `cb(respuesta)` responde a la página con la tabla en JSON. |

## Retorno

`true` si se registró. `false` si el recurso no muestra ninguna página (registra un aviso).

Solo funciona si el recurso declara una página con `<ui src="...">` en su `meta.xml`. Registrar el mismo nombre otra vez reemplaza la función.

## Ejemplo

```lua
registerNuiCallback("buy", function(data, cb)
    triggerServerEvent("shop:buy", localPlayer, data.item)
    cb({ ok = true })
end)

-- en la página: fetch("/buy", { method: "POST", body: JSON.stringify({ item: "pizza" }) })
```

### Atención

Si `cb` no se llama en 30 segundos, la página recibe `{}`.

## Ver también

- [sendNuiMessage (Cliente)](https://wiki.mymp.gg/es/sendNuiMessage.md): Envía un mensaje a la página de interfaz del recurso que llama. La página lo recibe en el evento message del window.
- [setNuiFocus (Cliente)](https://wiki.mymp.gg/es/setNuiFocus.md): Da o quita el foco a la página de interfaz del recurso que llama. Con foco, la página recibe el ratón y el teclado.
- [triggerServerEvent (Cliente)](https://wiki.mymp.gg/es/triggerServerEvent.md): Envía un evento al servidor, que lo dispara allí en source. La función vuelve antes de que el servidor lo reciba.
