# Parâmetros e arquivos de entrada

> Como a CLI do Nodaro transforma pares key=value de --param e --input no corpo da requisição, como os valores ganham tipo e quando enviar um arquivo JSON.

Source: https://nodaro.ai/pt-BR/docs/developers/cli/params

Os **parâmetros** são os valores que você passa para uma execução na linha de comando. `nodaro nodes run` recebe esses valores como `--param key=value`, e `nodaro apps run`, como `--input key=value`. As duas flags podem ser repetidas e seguem as mesmas regras, e um arquivo JSON com `--params-file` cobre tudo o que não cabe em uma flag.

## Pares key=value
Repita a flag uma vez por valor. Coloque entre aspas um valor que tenha espaços, para que o shell o passe como um único argumento.

```bash
nodaro nodes run generate-video \
  --param prompt="a paper boat drifting down a rainy street" \
  --param provider=seedance-2-fast \
  --param duration=8
```

A CLI dá um tipo a cada valor antes de enviar a requisição:

| Você digita | O corpo da requisição recebe |
| --- | --- |
| `true` ou `false` | Um booleano |
| `null` | `null` |
| Um número inteiro, como `8` | Um número |
| Um número decimal, como `0.5` | Um número |
| Um valor que começa com `[` ou `{` e é um JSON válido | Um array ou um objeto JSON |
| Qualquer outra coisa | Uma string |

Só o primeiro `=` separa a chave do valor. O resto do texto é mantido, então `--param query=a=b=c` envia a string `a=b=c`.

Um array JSON em linha fica assim. Coloque o par entre aspas simples, para que o shell mantenha as aspas duplas:

```bash
nodaro nodes run generate-image --param prompt="the same mug on a marble counter" --param 'referenceImageUrls=["https://example.com/mug-front.png","https://example.com/mug-side.png"]'
```

Para descobrir as chaves que um nó aceita, execute `nodaro nodes get <type>`. Para um app, execute `nodaro apps get <slug>`.

## Enviar um arquivo JSON
Para objetos aninhados, arrays longos ou qualquer valor que não caiba no formato de flag, escreva o corpo inteiro em um arquivo JSON e passe o arquivo com `--params-file`. O arquivo precisa conter um único objeto JSON.

```bash
cat > body.json <<'EOF'
{
"prompt": "a lighthouse on a cliff at dawn, cinematic",
"provider": "flux",
"aspectRatio": "16:9"
}
EOF

nodaro nodes run generate-image --params-file body.json --param aspectRatio=9:16
```

As flags têm prioridade sobre o arquivo. Neste exemplo, a execução usa a proporção `9:16` da flag e o restante do corpo do arquivo.

## Entradas do app e campos diretos de nós
`nodaro apps run` recebe os nomes das entradas do app como chaves:

```bash
nodaro apps run hair-styler-dd3erw --input prompt="curly red hair" --watch
```

`--override` alcança campos de nós que o app não expõe, só nesta execução. Escreva no formato `<nodeId>.<field>=<value>`:

```bash
nodaro apps run hair-styler-dd3erw --input prompt="curly red hair" \
  --override n1.promptPrefix="Studio portrait of" --override n1.promptSuffix=", 85mm, soft light"
```

Este exemplo envolve o prompt do usuário com texto oculto antes e depois dele. Veja [Texto antes e depois do prompt](https://nodaro.ai/docs/concepts/prompt-pre-post-text). Uma substituição nunca pode mudar para onde um nó envia dados ou de onde ele os busca, como o endereço de um nó [**Saída de webhook** (Webhook Output)](https://nodaro.ai/docs/nodes/publish/webhook-output); a execução é recusada com `locked_field`.

## Executar nós de entrada e de origem
Os nós de entrada e de origem são executados da mesma forma. O [**Extrair da web** (Web Scrape)](https://nodaro.ai/docs/nodes/automate/web-scrape), `web-scrape`, recebe a origem como `actor`: `google-search`, `content-crawler`, `rss` ou `tiktok`.

```bash
# Google Search results
nodaro nodes run web-scrape --param actor=google-search --param query="running shoes" --param maxResults=5

# The text of one web page, as Markdown
nodaro nodes run web-scrape --param actor=content-crawler --param url=https://example.com --param mode=page
```

Em uma instalação self-hosted, o Extrair da web precisa de `APIFY_API_TOKEN` no servidor, ou de uma [conexão com o Nodaro Cloud](https://nodaro.ai/docs/self-hosting/cloud-connect) que execute e cobre a extração.

## Frequently asked questions

### Como a CLI do Nodaro decide se um valor é um número ou uma string?

As palavras true e false viram booleanos, null vira null, e números inteiros e decimais viram números. Um valor que começa com colchete ou chave vira um array ou um objeto JSON quando é um JSON válido. Todo o resto continua como string.

### Um valor de --param pode conter um sinal de igual?

Sim. Só o primeiro sinal de igual separa a chave do valor, então --param query=a=b=c envia o valor a=b=c.

### Quando devo usar --params-file em vez de --param?

Use um arquivo JSON para objetos aninhados, arrays longos ou qualquer valor difícil de digitar como flag. As flags do mesmo comando têm prioridade sobre as chaves que também estão no arquivo.

### Qual é a diferença entre --param e --input?

Use --param com nodaro nodes run, em que as chaves são os campos de entrada do nó. Use --input com nodaro apps run, em que as chaves são os nomes das entradas do app. As duas flags seguem a mesma sintaxe.
