Tipos de Field
Um Field tem key, label, type e required. Escala, satisfação e escolha carregam um pouco mais.
Referência
| type | no Studio | valor no JSON | exemplo |
|---|---|---|---|
| text | texto | string | "Ana" |
| textarea | textarea | string | "Adorei o produto" |
| string com @ | "ana@acme.com" | ||
| number | número | number finito | 5 |
| scale+ min, max | escala | inteiro entre min e max | 9 |
| satisfaction+ minLabel, maxLabel | satisfação | inteiro 1 a 5 | 5 |
| select+ options | escolha | string, uma das options | "pro" |
| multiselect+ options | múltipla | string[], dentro de options | ["api","webhooks"] |
Regras
A key começa com letra e usa só a-z, 0-9 e _, no máximo 40 caracteres. Um Form aceita até 40 Fields, e uma escolha até 40 opções.
Numa scale, min precisa ser menor que max, ambos inteiros entre −100 e 100. satisfaction é sempre 1 a 5; minLabel e maxLabel são o texto debaixo das faces das pontas. Numa select ou multiselect, options não pode ser vazia nem ter repetidos.
Field opcional que não veio é aceito. Field opcional que veio errado é recusado — enviar nada e enviar lixo não são a mesma coisa.
Erros de validação
Todos voltam 400 com a key que falhou, para dar para consertar sem adivinhar.
missing field: satisfacao
invalid email: email
invalid number: rating
invalid scale: satisfacao
out of range: satisfacao (1..5)
invalid option: plano
repeated option: recursos
invalid selection: recursos
invalid text: comentario