Se você está procurando uma descrição mais completa do projeto, consulte o site de documentação: https://www.uddocs.com/
Esta demonstração mostra os principais recursos da biblioteca.
Eu escrevi esse código para evitar escrever repetidamente as mesmas coisas. Escrevo aplicativos da Web há muitos anos. O que esses aplicativos estavam fazendo? Eles estavam deitando dados de um formulário, salvando esses dados em um banco de dados e depois editando esses dados em outro formulário e mostrando esses dados em uma tabela ou em um diagrama de anúncios, às vezes estavam excluindo esses dados (com muita frequência para serem justos).
Bem, eu fiz isso repetidamente, forma após forma, ORM após ORM, MVC após MVC.
Eu me senti perdido e entediado. Eu estava trabalhando tanto e estava realizando tão pouco.
Aprendi muitas estruturas para acelerar meu processo, li muitos livros: a coisa nova, tão saindo!
Então comecei a notar que meu trabalho era repetível e essas estruturas estavam me desacelerando.
Com uma abordagem MVC, cada alteração que você se torna para fazer no seu aplicativo exige que você abra pelo menos 3 arquivos.
Então comecei a me perguntar: o que eu realmente preciso para fazer, por exemplo, uma tabela de dados de cotainamento obtida de um banco de dados? A resposta foi: preciso fazer uma consulta SQL, preciso definir a estrutura da tabela e preciso colocar os resultados da consulta em cima da mesa. É isso. Eu preciso dessas três coisas, nada mais do que isso.
Coloquei todas essas informações em um arquivo json e isso saiu:
{
"query" : {
"sql" : " select id, name, amount, duedate FROM requestv1; "
},
"table" : {
"title" : " My table " ,
"fields" : [
{ "headline" : " Name " , "sqlfield" : " name " },
{ "headline" : " Amount " , "sqlfield" : " amount " },
{ "headline" : " Due date " , "sqlfield" : " duedate " }
]
}
}Não Orm, nenhum MVC e uma estrutura que permanece fora do meu caminho.
Eu sei que usei o SQL e não um ORM, mas gosto do SQL! O SQL não mudou há anos, e isso significa que funciona! Não é triste ser velho!
Dei um título à tabela e, na matriz dos campos, defini as manchetes e os campos SQL que foram retirados da consulta para encher as células dessa tabela. Quantas vezes você resolveu esse mesmo problema simples? Você já fez isso escrevendo menos código? Se isso for verdade, por favor me avise!
Eu sei o que você está pensando: isso não é geral o suficiente, e se eu precisar fazer cálculos ou generalizar alguma lógica ou fazer algo mais complicado? Bem, você sempre pode voltar ao seu jeito antigo e programar um controlador uma visão, talvez feita de parciais, conectar e orm, anotar seu modelo e ... assim por diante e assim por diante ...
Mas, vamos ser retos, você realmente precisa disso? Com que frequência você faz isso? Muitas vezes encontrei Mysel enchendo uma mesa com os resultados de apenas uma consulta, talvez com poucas mesas juntas.
E se eu precisar adicionar um link a alguma ação suportada à tabela? Eu também defini isso no formato JSON.
{
"query" : {
"sql" : " select id, name, amount, duedate FROM requestv1; "
},
"table" : {
"title" : " My table " ,
"fields" : [
{ "headline" : " Name " , "sqlfield" : " name " },
{ "headline" : " Amount " , "sqlfield" : " amount " },
{ "headline" : " Due date " , "sqlfield" : " duedate " }
],
"actions" : [
{ "label" : " Info " , "resource" : " inforequest " , "parameters" :[{ "name" : " id " , "sqlfield" : " id " }] },
{ "label" : " Edit " , "resource" : " formrequest " , "parameters" :[{ "name" : " id " , "sqlfield" : " id " }] },
{ "label" : " Delete " , "resource" : " deletereport " , "parameters" :[{ "name" : " id " , "sqlfield" : " id " }] }
]
}
}Um link é definido a partir de um rótulo (o usuário precisa ver o que está clicando) Uma ação e poucos parâmetros talvez provenientes da consulta SQL.
Se você está se perguntando o que é um recurso, é um índice encontrar um arquivo de configuração JSON específico, como este, no sistema. Existem recursos para formulários, para exportações em PDF, para gráficos de dados, para o que você precisar. E se você precisar de mais, sempre pode definir um novo modelo, este é um projeto de código aberto, afinal.
Há poucas coisas para fazer para concluir o arquivo. Nemos para dar um nome para que possamos encontrá -lo entre todos os recursos. Precisamos adicionar alguns metadados, caso no futuro precisemos adicionar mais recursos.
O sistema suporta o conceito de grupos permitidos para acessar um recurso específico, isso explica a matriz "AllowGroups".
Há uma seção GET neste arquivo, está lá porque todas essas configurações são para uma solicitação GET.
{
"name" : " requesttablev1 " ,
"metadata" : { "type" : " table " , "version" : " 1 " },
"allowedgroups" : [ " administrationgroup " , " teachergroup " , " managergroup " ],
"get" : {
"request" : {
"parameters" : []
},
"query" : {
"sql" : " select id, name, amount, duedate FROM requestv1; "
},
"table" : {
"title" : " My table " ,
"fields" : [
{ "headline" : " Name " , "sqlfield" : " name " },
{ "headline" : " Amount " , "sqlfield" : " amount " },
{ "headline" : " Due date " , "sqlfield" : " duedate " }
],
"actions" : [
{ "label" : " Info " , "resource" : " inforequest " , "parameters" :[{ "name" : " id " , "sqlfield" : " id " }] },
{ "label" : " Edit " , "resource" : " formrequest " , "parameters" :[{ "name" : " id " , "sqlfield" : " id " }] },
{ "label" : " Delete " , "resource" : " deletereport " , "parameters" :[{ "name" : " id " , "sqlfield" : " id " }] }
]
}
}
}Se você puder usar os modelos padrão, poderá fazer um aplicativo inteiro apenas preenchendo a pasta SRC/personalizada com todos os recursos necessários. Abra essa pasta e dê uma olhada para ver como os outros recursos são definidos.