Skip to content

Instantly share code, notes, and snippets.

@itumoraes
Last active August 29, 2015 14:11
Show Gist options
  • Save itumoraes/cfd602154c1cd56cddf5 to your computer and use it in GitHub Desktop.
Save itumoraes/cfd602154c1cd56cddf5 to your computer and use it in GitHub Desktop.
Para esse desafio vamos partir de algumas premissas:
- Nosso sistema tem o back-end completamente desplugado do front-end e os
dois se relacionam por meio de serviços REST
- No front-end temos várias telas de cadastro
- Todas as definições das telas estão armazenadas no banco de dados e são
entregues ao front-end por um serviço que devolve um JSON que descreve como
o formulário deve ser montado.
Definição da API
Como obter o layout da tela
GET : screenLayouts/<screenName>
Exemplo
GET : screenLayouts/users
Como cadastrar novos usuário
POST : user
body : JSON com os dados do usuário
Retorna o layout da tela de usuários
{
sections:[{
description: 'Dados de autenticação',
fields: [{
name: 'login',
mandatory: true,
type: 'text'
},{
name: 'password',
mandatory: true,
type: 'password'
},{
name: 'expirationDate',
mandatory: true,
type: 'date'
},{
name: 'enabled',
mandatory: false,
type: 'checkbox'
}]
},{
description: 'Dados de contato',
fields: [{
name: 'rua',
mandatory: false,
type: 'text'
},{
name: 'complemento',
mandatory: false,
type: 'text'
},{
name: 'bairro',
mandatory: false,
type: 'text'
},{
name: 'telefone',
mandatory: false,
type: 'tel'
}]
},{
description: '',
fields: [{
name: 'submit',
type: 'button'
}]
}]
}
- Sua missão é criar um mini framework, que tenha como dependência no máximo
o jQuery, mas de preferência nenhuma, que solicite a tela de usuários, interprete o JSON
retornado e monte um HTML com ele, depois colete dos dados do formulário e submeta de
volta para o servidor.
- Não é preciso fazer nenhum serviço para receber esse post
- Códigos que não funcionem serão desconsiderados
- Serão analisados a aderência da implementação com a necessidade exposta e a
qualidade do código
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment