[toc] iDempiere json(rest api) ## 來源 https://github.com/bxservice/idempiere-rest/tree/release-11?tab=readme-ov-file ## 整體流程 ``` mermaid flowchart TD 抓git --如果服務器沒有專案--> 開發本機 抓git --如果有parent專案--> 服務器 開發本機 --mvn verify--> 產jar 服務器 --mvn verify--> 產jar 產jar -->服務器 服務器 -->執行(執行 update-rest-extensions.sh 重啟) 執行 -->檢查(檢查API) 執行 -->啟動說明文件(啟動說明文件 yml) 執行 -->下載(下載postman sample) 下載 --via 說明文件--> 檢查 ``` ## 本機作業 git clone 整個project 後去 mvn verify (build)後丟上去 :::info 這個資料夾要跟主心骨同等級 :::  ```bash= # clone git clone https://github.com/bxservice/idempiere-rest.git cd idempiere-rest # build mvn verify # 上傳到Server 上的位置 scp -r /Users/tom/workspace/idempiere/idempiere-rest tom@192.168.1.49:/home/tom/linux/gtk/x86_64 ```  ## server 作業 執行指定位置 :::warning 文件上是這樣寫 at your idempiere instance's root folder (for instance, /opt/idempiere), run ./update-rest-extensions.sh <file or url path to com.trekglobal.idempiere.extensions.p2/target/repository> for e.g, if your source is at /ws/idempiere-rest, ./update-rest-extensions.sh file:////ws/idempiere-rest/com.trekglobal.idempiere.extensions.p2/target/repository :::  以我們的案例要改成這樣的語句 ``` ./idempiere-rest/update-rest-extensions.sh file:///home/tom/linux/gtk/x86_64/idempiere-rest/com.trekglobal.idempiere.extensions.p2/target/repository ``` 如果直接進到idempiere-rest去執行update-rest-extensions.sh 會不認得,路徑要用"file"這個schema指定 沒錯誤訊息就是好消息 需重新啟動 iDempiere ## 測試 然後就可以測試 {{protocol}}://{{host}}:{{port}}/api/v1/auth/tokens   這樣就成功了 然後去引用他的Sample測試 https://github.com/bxservice/idempiere-rest/tree/release-11/com.trekglobal.idempiere.rest.api/postman :::danger 要使用他的 tokens one step, 另一個產出來的不能用 :::  ``` json= { "userName": "{{userName}}", "password": "{{password}}", "parameters": { "clientId": {{clientId}}, "roleId": {{roleId}}, "organizationId": {{organizationId}}, "warehouseId": {{warehouseId}}, "language": "{{language}}" } } ``` |para|value| |---|---| |protocal|http| |host|192.168.1.49| |port|8080| |clientId |11| |roleId |102| |organizationId | 11| |warehouseId |103| |language |zh_TW| 使用取得的token 打其他的API  ## 文件說明 https://editor.swagger.io/ https://github.com/bxservice/idempiere-rest/blob/master/com.trekglobal.idempiere.rest.api/openapi/idempiere-rest.yml  ## 特殊情境 ``` mermaid flowchart TD DB --> AP1 DB --> AP2 ``` 這個插件整個動作上傳Server並且跑update-prd.sh註冊後重啟 重啟後會看資料庫內有沒有 REST_RESOURCE_ACCESS_CONTROL REST_TOKEN_SECRET 這兩個KEY 沒有會加入 (還有其他的表 window menu 等等)  --- 基於以上的動作 一台DB 兩個AP的狀況,因AP獨立,所以如果在第一台上註冊後,第二台其實是沒有這個OSGi的插件,所以第一台的api成立的時候,資料庫內就會有那兩個value,這個時候第二台是無法打Api的,然後等第二台註冊OSGi後,兩台用的是同一個DB,所以Token可共用 ## 產TOKEN  ## API文件 位於 https://github.com/bxservice/idempiere-rest/blob/master/com.trekglobal.idempiere.rest.api/openapi/idempiere-rest.yml 接著要自己想辦法根據YML檔做事 ``` html <!DOCTYPE html> <html> <head> <title>iDempiere REST API Docs</title> <script type="module" src="https://unpkg.com/rapidoc/dist/rapidoc-min.js"></script> </head> <body> <rapi-doc spec-url="./idempiere-rest.yml" theme="light" show-header="true" render-style="read" ></rapi-doc> </body> </html> ``` 將這個做成 index.html 並且放在與yml檔同資料夾 ``` bash nohup python3 -m http.server 8081 > logdata.log & ```   https://deepwiki.com/hengsin/idempiere-rest/4.3-data-serialization-and-type-conversion
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up