# registerNuiCallback (Cliente)

> Registra uma função que a página de interface do recurso chama com um `fetch` para `/nome` no próprio endereço dela.

- **Plataforma**: MY Multiplayer (MYMP)
- **Tipo**: Função Lua
- **Lado**: Cliente
- **Categoria**: Interface web
- **URL**: https://wiki.mymp.gg/pt/registerNuiCallback

## Sintaxe

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

## Parâmetros

| Nome | Tipo | Descrição |
| --- | --- | --- |
| `name` | `string` | Nome do callback, o caminho que a página pede sem a `/`. |
| `handler` | `function` | Função chamada com `(data, cb)`: `data` é o corpo do pedido lido como JSON (uma tabela vazia se estiver vazio ou inválido) e `cb(resposta)` responde à página com a tabela em JSON. |

## Retorno

`true` se foi registrada. `false` se o recurso não mostra nenhuma página (registra um aviso).

Só funciona se o recurso declara uma página com `<ui src="...">` no `meta.xml`. Registrar o mesmo nome de novo troca a função.

## Exemplo

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

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

### Atenção

Se `cb` não for chamada em 30 segundos, a página recebe `{}`.

## Veja também

- [sendNuiMessage (Cliente)](https://wiki.mymp.gg/pt/sendNuiMessage.md): Manda uma mensagem para a página de interface do recurso que chama. A página a recebe no evento message do window.
- [setNuiFocus (Cliente)](https://wiki.mymp.gg/pt/setNuiFocus.md): Dá ou tira o foco da página de interface do recurso que chama. Com foco, a página recebe o mouse e o teclado.
- [triggerServerEvent (Cliente)](https://wiki.mymp.gg/pt/triggerServerEvent.md): Envia um evento ao servidor, que o dispara em source lá. A função retorna antes de o servidor receber.
