Pular para o conteúdo principal

Utilizando formulários

Após criar um formulário e deixá-lo da forma que você quiser, ele de nada servirá se não for implementado e utilizado na sua aplicação, e nessa seção explicaremos como fazê-lo.

Para utilizar um formulário, basta estar em uma área de trabalho, clicar em "Formulários" na barra lateral e então clicar no formulário que você deseja utilizar. Você então entrará na página de listagem de envios daquele formulário. Então basta clicar em "Usar formulário" no canto superior-direito, que abrirá uma janela com instruções para enviar dados para o formulário e requisitar seus campos.

Enviando dados para um formulário

Para enviar dados para um formulário, basta copiar a primeira URL mostrada na janela de opções e utilizá-la numa requisição POST. Abaixo temos um exemplo de código dessa requisição em JavaScript, utilizando fetch. Perceba que nesse exemplo o corpo da requisição é composto de um email e uma mensagem.

const response = await fetch(
'https://submit.starlightcms.io/v2/organizations/starlight/workspaces/my-app/forms/message-form',
{
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({ email: emailVariable, message: messageVariable }),
}
)

E pronto! Seus dados foram enviados para o formulário. Se quiser conferir se deu tudo certo do lado do código, basta checar response.status. Se for igual a 200, deu tudo certo! Caso hajam erros de validação, a API retornará os devidos erros na reposta da requisição.

Recebendo campos de um formulário

Para receber os campos de um formulário, basta copiar a segunda URL mostrada na janela de opções e utilizá-la numa requisição GET. Abaixo temos um exemplo de código dessa requisição em JavaScript, utilizando fetch.

const response = await fetch(
'https://submit.starlightcms.io/v2/organizations/starlight/workspaces/my-app/forms/message-form/schema',
{
method: 'GET',
headers: {
'Content-Type': 'application/json',
},
}
)

Para extrair os campos do formulário dessa resposta, basta utilizar await response.json(). E pronto! Você agora tem acesso à estrutura do seu formulário no seu código. Ele estará organizado da mesma forma que no Starlight, e cada campo estará no seu grupo de campos.

Vamos supor que guardamos o JSON da resposta em uma variável (const json = await response.json()) e printamos o seu atributo data (console.log(json.data)) para ver seus campos, teríamos um JSON similar a este:

{
"version": 1,
"groups": [
{
"title": "Informações básicas",
"type": "group",
"fields": [
{
"title": "Email",
"key": "email",
"type": "string",
"is_required": true,
"is_listable": true,
"is_private": false,
"is_archived": false,
"is_unique": false,
"is_identifier": false,
"rules": {
"max": 1000,
"min": 0
}
},
{
"title": "Message",
"key": "message",
"type": "text",
"is_required": true,
"is_listable": true,
"is_private": false,
"is_archived": false,
"is_unique": false,
"is_identifier": false,
"rules": {
"max": 5000,
"min": 0
}
}
]
}
]
}

Se quiser conferir se deu tudo certo do lado do código, basta checar response.status. Se for igual a 200, deu tudo certo! Caso ocorra um ou mais erros, a API retornará os devidos erros na resposta da requisição.