」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > Injee - 為前端開發人員提供的無配置即時資料庫。

Injee - 為前端開發人員提供的無配置即時資料庫。

發佈於2024-08-07
瀏覽:926

Injee - The no configuration instant database for frontend developers.

作为前端开发人员,等待 API 交付是一件痛苦的事情。如果有一个内置 API 的奇迹数据库会怎样?好吧,这不再是幻想了。 Injee 是一个数据库,为前端开发人员提供了随时可用的 CRUD API。通过阅读本页,您将学习如何使用Injee,在i​​njee中创建书籍记录,并且您将学习如何操作和搜索数据。

入门

安装Java

您只需执行此操作一次。访问 https://java.com 为您的计算机下载 Java。一旦安装在您的 CMD 或终端上,输入 java --varsion ,它就必须工作。

下载仁济

您可以点击这里下载injee。或者在您的终端中使用:

$ wget https://codeberg.org/injee/injee/releases/download/0.2.0/injee-0.2.0.jar

使用仁济

导航到下载 injee jar 文件的目录,并使用以下命令运行它:

$ java -jar injee-0.2.0.jar

健康

让我们检查一下服务器是否正在运行。我们使用 API GET http://localhost:4125/ops/health.

在您的终端中尝试:

$ curl -X GET http://localhost:4125/ops/health

输出应该是

{
  "health": "ok"
}

创建书籍

所以让我们创建一个书籍存储库,神奇的是,injee 有 API POST http://localhost:4125/api/books 来创建一本书。如果您想创建汽车存储库,injee 有 API POST http://localhost:4125/api/cars API。那么让我们创建一本书并将其存储在 injee 中:

$ curl -X POST http://localhost:4125/api/books \
       -H "Content-Type: application/json" \
       -d '{"title": "Treasure Island", "author": "Robert Louis Stevenson"}'

输出

{
  "title": "Treasure Island",
  "author": "Robert Louis Stevenson",
  "id": "722e2b57-59cc-4254-85b5-562858264f75"
}

因此,injee 存储这本书,并给出一个 JSON,其中包含您发送给 injee 的所有值,以及一个 UUID,该 UUID 被分配给名为 id 的 ney。

现在让我们创建另一本书:

$ curl -X POST http://localhost:4125/api/books \
       -H "Content-Type: application/json" \
       -d '{"title": "Adventures of Huckleberry Finn", "author": "Mark Twain"}'

输出

{
  "title": "Adventures of Huckleberry Finn",
  "author": "Mark Twain",
  "id": "689976e3-082e-4943-9525-a21b47cba325"
}

并且有效!

列出所有书籍

现在列出我们使用的所有书籍 GET http://localhost:4125/api/books:

$ curl -X GET http://localhost:4125/api/books

输出

[
  {
    "title": "Treasure Island",
    "author": "Robert Louis Stevenson",
    "id": "722e2b57-59cc-4254-85b5-562858264f75"
  },
  {
    "title": "Adventures of Huckleberry Finn",
    "author": "Mark Twain",
    "id": "689976e3-082e-4943-9525-a21b47cba325"
  }
]

我们存储了一系列不错的书籍。

取一本书

现在让我们只获取一本书,为此我们使用 API GET http://localhost:4125/api/books/:id:

$ curl -X GET http://localhost:4125/api/books/689976e3-082e-4943-9525-a21b47cba325

输出

{
  "title": "Adventures of Huckleberry Finn",
  "author": "Mark Twain",
  "id": "689976e3-082e-4943-9525-a21b47cba325"
}

因此,如果我在前面加上 id GET http://localhost:4125/api/books/,我就会得到一本书的详细信息。

更新一本书

要更新书籍,请使用 PUT 和 http://localhost:4125/api/books/:id,后跟书籍的参数:

$ curl -X PUT http://localhost:4125/api/books/689976e3-082e-4943-9525-a21b47cba325 \
       -H "Content-Type: application/json" \
       -d '{"title": "Adventures of Tom Sawyer"}'

输出

{
  "title": "Adventures of Tom Sawyer",
  "author": "Mark Twain",
  "id": "689976e3-082e-4943-9525-a21b47cba325"
}

正如您在上面看到的,书名已从《哈克贝利·费恩历险记》更改为《汤姆·索亚历险记》。

现在让我们列出所有书籍:

$ curl -X GET http://localhost:4125/api/books

输出

[
  {
    "title": "Treasure Island",
    "author": "Robert Louis Stevenson",
    "id": "722e2b57-59cc-4254-85b5-562858264f75"
  },
  {
    "title": "Adventures of Tom Sawyer",
    "author": "Mark Twain",
    "id": "689976e3-082e-4943-9525-a21b47cba325"
  }
]

确认我们的更新。

删除一本书

现在让我们删除一本书。为此,请使用 DELETE 和 http://localhost:4125/api/books/:id:

$ curl -X DELETE http://localhost:4125/api/books/689976e3-082e-4943-9525-a21b47cba325

输出

不会有输出,如果您在代码中尝试并接收响应对象,您应该得到状态 204。

现在我们列出所有书籍,并确认《汤姆索亚历险记》已被删除:

$ curl -X GET http://localhost:4125/api/books

输出

[
  {
    "title": "Treasure Island",
    "author": "Robert Louis Stevenson",
    "id": "722e2b57-59cc-4254-85b5-562858264f75"
  }
]


列表表

现在让我们创建一个用户:

$ curl -X POST http://localhost:4125/api/users \
       -H "Content-Type: application/json" \
       -d '{"name": "Karthik"}'

输出

{
  "name": "Karthik",
  "created_at": "2024-07-22T11:18:42Z",
  "updated_at": "2024-07-22T11:18:42Z",
  "id": "ad100ab0-7893-421d-9233-353cc8899aa9"
}

现在我们的数据库中必须有两个表,即 books 和 users,让我们使用以下 API 列出它们:

$ curl -X GET http://localhost:4125/ops/tables

输出

[
  "books",
  "users"
]

搜寻记录

让我们在用户表中添加另一条用户记录:

$ curl -X POST http://localhost:4125/api/users \
       -H "Content-Type: application/json" \
       -d '{"name": "Pari"}'

现在让我们获取所有用户并确认我们的添加

$ curl -X GET http://localhost:4125/api/users

[
  {
    "name": "Karthik",
    "created_at": "2024-07-22T11:18:42Z",
    "updated_at": "2024-07-22T11:18:42Z",
    "id": "ad100ab0-7893-421d-9233-353cc8899aa9"
  },
  {
    "name": "Pari",
    "created_at": "2024-07-22T11:23:27Z",
    "updated_at": "2024-07-22T11:23:27Z",
    "id": "1f06bb65-1f2d-4980-9cfc-cf3d38c9db7e"
  }
]

现在让我们在 users 中搜索字符串:

$ curl -X GET http://localhost:4125/api/users?q=Pari

[
  {
    "name": "Pari",
    "created_at": "2024-07-22T11:23:27Z",
    "updated_at": "2024-07-22T11:23:27Z",
    "id": "1f06bb65-1f2d-4980-9cfc-cf3d38c9db7e"
  }
]

支持仁济

现在让我们将数据库备份到名为 backup.json 的文件中:

$ curl -X GET http://localhost:4125/ops/save?file=backup.json

输出

{
  "message": "saved to file backup.json"
}

阻止仁济

最后,要停止 injee,请在运行 injee 的终端中按 Ctrl c 在运行 injee 的终端中停止它。

加载备份

让我们再次开始injee:

$ java -jar injee-0.2.0.jar

$ curl -X GET http://localhost:4125/ops/load?file=backup.json

输出

{
  "message": "loaded from file backup.json"
}

所以你已经恢复了原来的数据库并运行了。恭喜。

不断更新

了解 Injee 最新动态的最佳方法之一是关注其页面 https://injee.codeberg.page/ ,或关注其 RSS https://codeberg.org/injee.rss

版本聲明 本文轉載於:https://dev.to/mindaslab/injee-the-no-configuration-instant-database-for-frontend-developers-dli?1如有侵犯,請聯絡[email protected]刪除
最新教學 更多>
  • 如何將項目添加到Ienumerable中?
    如何將項目添加到Ienumerable中?
    [2收藏。但是,這不能做到,因為Ienumerable 不一定代表可變的收藏。它甚至可能根本不代表集合。 { 字符串s; 做 { S = Console.Readline(); 收益回報s; } while(!strin...
    程式設計 發佈於2025-02-07
  • 對象擬合:IE和Edge中的封面失敗,如何修復?
    對象擬合:IE和Edge中的封面失敗,如何修復?
    解決此問題,我們採用了一個巧妙的CSS解決方案來解決問題:高度:100%; 高度:auto ; 寬度:100%; //對於水平塊 ,使用絕對定位將圖像定位在中心,以object-fit:object-fit :cover in IE和edge消除了問題。現在,圖像將按比例擴展,保持所需的效果而不...
    程式設計 發佈於2025-02-07
  • 如何使用char_length()在mySQL中按字符串長度對數據進行排序?
    如何使用char_length()在mySQL中按字符串長度對數據進行排序?
    [2使用內置的char_length()function。 char_length()和length() 此查詢將從指定的表中檢索所有行,並基於上升順序對它們進行排序指定列的字符長度。帶有更長字符串的行將出現在結果的底部。
    程式設計 發佈於2025-02-07
  • 如何克服PHP的功能重新定義限制?
    如何克服PHP的功能重新定義限制?
    克服PHP的函數重新定義限制在PHP中,多次定義一個相同名稱的函數是一個no-no。嘗試這樣做,如提供的代碼段所示,將導致可怕的“不能重新列出”錯誤。 // error:“ coss redeclare foo()” 但是,php工具腰帶中有一個隱藏的寶石:runkit擴展。它使您能夠靈活...
    程式設計 發佈於2025-02-07
  • 如何從Google API中檢索最新的jQuery庫?
    如何從Google API中檢索最新的jQuery庫?
    從Google APIS 問題中提供的jQuery URL是版本1.2.6。對於檢索最新版本,以前有一種使用特定版本號的替代方法,它是使用以下語法: https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js(google hosted...
    程式設計 發佈於2025-02-07
  • 如何使用替換指令在GO MOD中解析模塊路徑差異?
    如何使用替換指令在GO MOD中解析模塊路徑差異?
    克服go mod中的模塊路徑差異 coreos/bbolt:github.com/coreos/ [email受保護]:解析go.mod:模塊將其路徑聲明為:go.etcd.io/bbolt `要解決此問題,您可以在go.mod文件中使用替換指令。只需在go.mod的末尾添加以下行:[&& &...
    程式設計 發佈於2025-02-07
  • 如何使用PHP將斑點(圖像)正確插入MySQL?
    如何使用PHP將斑點(圖像)正確插入MySQL?
    在嘗試將image存儲在mysql數據庫中時,您可能會遇到一個可能會遇到問題。本指南將提供成功存儲您的圖像數據的解決方案。 easudy values('$ this-> ; image_id','file_get_contents($ tmp_imag...
    程式設計 發佈於2025-02-07
  • 如何可靠地檢查MySQL表中的列存在?
    如何可靠地檢查MySQL表中的列存在?
    在mySQL中確定列中的列存在,驗證表中的列存在與與之相比有點困惑其他數據庫系統。常用的方法:如果存在(從信息_schema.columns select * * where table_name ='prefix_topic'和column_name =&...
    程式設計 發佈於2025-02-07
  • 如何在沒有錯誤的情況下在Python中創建空的凹痕塊?
    如何在沒有錯誤的情況下在Python中創建空的凹痕塊?
    在編寫python 但是,在某些情況下,您可能需要創建一個空的凹痕塊來捕獲和丟棄異常而不明確處理它們。為了實現這一目標,您可以使用“通過”語句。 Pass語句是Python中的空操作。將其放置在縮進塊中時,它充當佔位符,允許解釋器在不執行任何實際代碼的情況下正確地識別該塊。 嘗試: #在...
    程式設計 發佈於2025-02-07
  • 為什麼PYTZ最初顯示出意外的時區偏移?
    為什麼PYTZ最初顯示出意外的時區偏移?
    與pytz 最初從pytz獲得特定的偏移。例如,亞洲/hong_kong最初顯示一個七個小時37分鐘的偏移: 差異源 考慮以下代碼: < pre> import pytz [&& &&&&&&華&& && && && &&&華dt2 = hk.localize(dateTime(2012,1...
    程式設計 發佈於2025-02-07
  • 如何在保持鼠標輪和箭頭鑰匙滾動的同時隱藏滾動條?
    如何在保持鼠標輪和箭頭鑰匙滾動的同時隱藏滾動條?
    在通過鼠標輪和箭頭鍵啟用滾動時隱藏scrollbars A:要完成此操作,請按照以下步驟:使用CSSS屬性溢出:隱藏在目標div或身體上隱藏滾動條。 模仿鼠標輪滾動: javaScript或jquery。 在函數中,修改目標div的scrolltop屬性以仿真滾動。 : 綁定鍵盤事件(而不是...
    程式設計 發佈於2025-02-07
  • Java是否允許多種返回類型:仔細研究通用方法?
    Java是否允許多種返回類型:仔細研究通用方法?
    在java中的多個返回類型:一個誤解介紹,其中foo是自定義類。該方法聲明似乎擁有兩種返回類型:列表和E。但是,情況確實如此嗎? 通用方法:拆開神秘 [方法僅具有單一的返回類型。相反,它採用機制,如鑽石符號“ ”。 分解方法簽名: :本節定義了一個通用類型參數,E。它表示該方法接受了擴展foo類...
    程式設計 發佈於2025-02-07
  • 如何使用組在MySQL中旋轉數據?
    如何使用組在MySQL中旋轉數據?
    在關係數據庫中使用mysql組使用mysql組來調整查詢結果。在這裡,我們面對一個共同的挑戰:使用組的組將數據從基於行的基於列的基於列的轉換。通過子句以及條件匯總函數,例如總和或情況。讓我們考慮以下查詢: select d.data_timestamp, sum(data_id = 1 tata...
    程式設計 發佈於2025-02-07
  • 如何檢查對像是否具有Python中的特定屬性?
    如何檢查對像是否具有Python中的特定屬性?
    方法來確定對象屬性存在尋求一種方法來驗證對像中特定屬性的存在。考慮以下示例,其中嘗試訪問不確定屬性會引起錯誤: >>> a = someClass() >>> A.property Trackback(最近的最新電話): 文件“ ”,第1行, AttributeError:SomeClass實...
    程式設計 發佈於2025-02-07
  • 我可以在CSS中使用SVG作為偽元素嗎?
    我可以在CSS中使用SVG作為偽元素嗎?
    使用svgs用作pseudo-element content css content properts允許在使用元素之前或之後使用元素插入各種類型的內容偽元素,例如::之前和::之後。但是,對可以包括哪些內容有限制。 可以將svgs用作pseudo-element Content? ,現在可以使...
    程式設計 發佈於2025-02-07

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3