[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
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.