如果您正在尋找對項目的更完整的描述,請查看文檔網站:https://www.uddocs.com/
該演示顯示了庫的主要功能。
我編寫了此代碼,以避免一遍又一遍地編寫相同的內容。我一直在編寫Web應用程序多年。這些申請在做什麼?他們正在從表單中刪除數據,將數據保存在數據庫中,然後以另一種形式編輯該數據,並在表中或圖表廣告中顯示該數據有時會刪除該數據(公平不太頻繁)。
好吧,我一遍又一遍地做到這一點,在形式之後形式,在ORM之後,MVC之後MVC。
我感到迷路和無聊。我的工作如此努力,我的成就很少。
我學到了許多框架來加快我的流程,我讀了很多書:新事物,因此退出!
然後我開始注意到我的工作是可重複的,這些框架使我放慢了腳步。
使用MVC方法,您構成的每種更改都需要對您的應用程序進行更改,這需要您至少打開3個文件。
因此,我開始懷疑:例如,我真正需要什麼才能製作出從數據庫中獲取的表格數據?答案是:我需要進行SQL查詢,我需要定義表的結構,並且需要將查詢結果放在表格上。就是這樣。我需要這三件事,遠不止於此。
我將所有這些信息都放在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 " }
]
}
}沒有ORM,沒有MVC和一個遠離我的框架。
我知道我使用了SQL,而不是ORM,但我喜歡SQL! SQL多年來都沒有變化,這意味著它有效!變老並不難過!
我給了表格和字段陣列中的標題,我定義了從查詢中獲取的標題和SQL字段,以填充該表的單元格。您解決了幾次相同的簡單問題?您是否曾經做過少的代碼?如果那是真的,請告訴我!
我知道您在想什麼:這還不夠一般,如果我需要進行計算或概括一些邏輯或做更複雜的事情怎麼辦?好吧,您總是可以回到舊方法,並編程控制器一個視圖,也許是由部分組成,連接和ORM,寫下您的模型,等等,等等...
但是,讓我們保持直率,您真的需要嗎?您多久做一次?我經常發現我的桌子填充了一個只有一個查詢的結果,也許很少有桌子。
如果我需要在表中添加某些支持操作的鏈接怎麼辦?我也以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 " }] }
]
}
}通過標籤定義鏈接(用戶需要查看什麼是單擊),可能來自SQL查詢的幾個參數。
如果您想知道什麼是資源,則是在系統中找到特定的JSON配置文件的索引。對於您需要的任何內容,有用於表格,PDF導出,數據圖表的資源。而且,如果您需要更多信息,您始終可以定義一個新模板,這畢竟是一個開源項目。
為了完成文件,幾乎沒有事情要做。我們將其命名為一個名稱,以便我們可以在資源之間找到它。我們需要添加一些元數據,以防萬一我們需要添加更多功能。
該系統支持允許組訪問特定資源的概念,這解釋了“允許組”數組。
該文件中有一個get部分,因為所有這些配置都是用於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 " }] }
]
}
}
}如果您可以使用標準模板,則可以使用所需的所有資源來製作整個應用程序。打開該文件夾並查看一下,以便您可以查看其他資源的定義。