Getting Start With Midas API Server
ย
๊ธฐ๋ณธ์ ์ธ ์ฌ์ฉ๋ฒ์ ์ตํ๋ ์ฐจ์์์ Guide์ ๋ด์ฉ์ ๋ชจ๋ ๋ฐ๋ผํ๊ธฐ ํด ๋ณด์๊ธธ ๊ถ์ฅํฉ๋๋ค.
Prerequisites
MIDAS API ์คํ์ ๊ธฐ๋ณธ์ฌํญ
ย
API ๋ชจ๋ ์คํ์ ์คํํ์ผ MidasGen.exe ์ /API ์คํ ํ๋ผ๋ฏธํฐ๋ฅผ ๋๊ธฐ๋ฉด ๋ฉ๋๋ค. command ๋ผ์ธ์์ ์คํ ํ๊ฑฐ๋ ๋ฐ๋ก๊ฐ๊ธฐ๋ฅผ ์์ ํด ๋ง๋ค ์ ์์ต๋๋ค.
Command ๋ผ์ธ์์ ์คํ
WIndows cmd์์ API๋ชจ๋ ์คํ
๋ฐ๋ก๊ฐ๊ธฐ ๋ง๋ค๊ธฐ
๋ฐ๋ก๊ฐ๊ธฐ ์์ฑ (์ฐํด๋ฆญ ํ ๋ฐ๋ก๊ฐ๊ธฐ ๋ง๋ค๊ธฐ)
๋ฐ๋ก๊ฐ๊ธฐ ๋ง๋ค๊ธฐ๋ฐ๋ก๊ฐ๊ธฐ ๋์์ /API ์ถ๊ฐ
๋ฐ๋ก๊ฐ๊ธฐ์ /API ํ๋ผ๋ฏธํฐ ์ถ๊ฐ
API ๋ชจ๋๋ก ์คํ๋๋ฉด Civil ์คํ์ ๋ค์๊ณผ ๊ฐ์ ๋ํ์์๊ฐ ํจ๊ป ์คํ ๋๊ณ Connected to client โฆ ๋ฉ์ธ์ง๊ฐ ๋ํ๋๋ฉด ์ ์์ ์ผ๋ก ์คํ ๋ ๊ฒ์ ๋๋ค.
Gen์ API ๋ชจ๋ ๋์ ๊ตฌ์กฐ
/API ๋ฅผ ์ฃผ์ด ์คํํ ๊ฒฐ๊ณผ์์ ํจ๊ป ์คํ๋ ์ฐฝ์ API ์๋ฒ์ ๋ก๊ทธ ์ฐฝ์ ๋๋ค. API๋ฅผ ์ฌ์ฉํ๊ธฐ ์ ์ ๊ฐ๋จํ ์ฐ๊ฒฐ ๋ฐฉ์์ ์ดํดํ๋ฉด ๋์์ด ๋ ๊ฒ ๊ฐ์ต๋๋ค.
APIServer.exe ๊ฐ ์คํ๋์ด Gen ์ ์ฐ๊ฒฐ์ ๊ธฐ๋ค๋ฆฝ๋๋ค.
Gen ์ ์คํ ๋๋ฉด์ ๊ธฐ๋ค๋ฆฌ๊ณ ์๋ APIServer.exe ์ ์ฐ๊ฒฐํฉ๋๋ค.
Restful API๋ฅผ ์ด์ฉํด ํตํด์ APIServer ์ ๋ฉ์ธ์ง๋ฅผ ๋ณด๋ด๋ฉด, ์ฐ๊ฒฐ๋ Gen์ ์ ์ดํฉ๋๋ค.
APIServer.exe ๊ฐ Gen ๊ณผ ์ฌ์ฉ์์ ์ฐ๊ฒฐ ํต๋ก ์ญํ ์ ํ๋ค๊ณ ์๊ฐํ๋ฉด ๋ฉ๋๋ค. APIServer.exe ๋ http ์ฐ๊ฒฐ์ ํตํด์ Gen์ ์ ์ด ํ๋๋ก ๋์์ค๋๋ค.
http ์ฐ๊ฒฐ์ ์ธํฐ๋ท ๋ธ๋ผ์ฐ์ ๊ฐ ๋ฉ์ธ์ง๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ํ์(ํ๋กํ ์ฝ)์ ๋๋ค. (์์ธํ ๋ด์ฉ์ HTTP | MDN (mozilla.org)๋ฅผ ์ฐธ๊ณ ) ๊ฐ๋จํ๊ฒ Gen ์์ ์๋ฌด๋ฐ ๋ชจ๋ธ ํ์ผ์ ์ด๊ณ ์ธํฐ๋ท ๋ธ๋ผ์ฐ์ ๋ก http://localhost:10024/db/matl ์ฃผ์๋ฅผ ์ ๋ ฅํ๋ฉด ์๋์ ๋น์ทํ๊ฒ, ๋ชจ๋ธ์ ๋ฐ์ดํฐ๋ฅผ JSON์ผ๋ก ๋ฐ์๋ณด๊ฒ ๋ฉ๋๋ค.
์ด์ ๊ฐ์ด API์๋ฒ์ ๋ฏธ๋ฆฌ ์ ์๋ ๊ท์น์ ๋ฐ๋ผ์ ๋ช ๋ น์ด๋ฅผ ์ฃผ๊ณ ๋ฐ์ผ๋ฉฐ Gen์ ์ ์ด ํ๊ฒ ๋ฉ๋๋ค. http ๋ฉ์ธ์ง๋ Python ์ ๋น๋กฏํ ์ฌ๋ฌ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ์ด์ฉํด ์ฃผ๊ณ ๋ฐ์ ์๋ ์์ง๋ง, ๋จผ์ ์ดํด๋ฅผ ๋๊ธฐ ์ํด Postman ์ด๋ผ๋ ํ๋ก๊ทธ๋จ์ ํ์ฉํด ๊ฐ๋จํ ์ฐ๊ฒฐ์ ํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
Postman ์ ํ์ฉํ ๊ฐ๋จํ ๋์
Postman ์ค์น ๋ฐ ์ ๋ช ๋ น์ด ์์
Postman ์ ๋ค์ ์์น์์ ๋ค์ด๋ก๋ ๋ฐ์ ์ค์น ํ์ค ์ ์์ต๋๋ค. Download Postman | Get Started for Free
ย
๋ชจ๋ธ ํ์ผ ์ด๊ธฐ
๋ชจ๋ธ ํ์ผ
๋ชจ๋ธ ํ์ผ ์ด๊ธฐ๋ ๋ค์์ http POST ๋ฉ์ธ์ง๋ฅผ ํตํด ์ํ ๊ฐ๋ฅํฉ๋๋ค.
POST http://localhost:10024/doc/open
content-type: application/json
{
"Argument": "C:\\MIDAS\\API\\Model\\test.mgb"
}
์ ๋ด์ฉ์ Postman์ ์ ๋ ฅํ๋ ์ ์ฐจ๋ ์๋์ ๊ฐ์ต๋๋ค.
ย
http ๋ฉ์๋ ํ์ ์ ํ (POST)
api URI ์ ๋ ฅ
http://localhost:10024/doc/open
Content-type ์ ํ
content-type: application/json
Body JSON ๋ฐ์ดํฐ ์ ๋ ฅ
{"Argument": "C:\\MIDAS\\API\\Model\\test.mgb"}
C:\\MIDAS\\API\\Model\\test.mgb โ ๋ด PC์ ์๋ ๋ชจ๋ธ ํ์ผ ๊ฒฝ๋ก ์ ๋ ฅ
๊ฒฝ๋ก์ \\ ์ฌ์ฉ ์ฃผ์!
Send ๋ฒํผ์ ๋๋ฅด๋ฉด ๋ชจ๋ธํ์ผ์ด Open๋๊ณ postman ์์ ์๋ต์ ํ์ธ ํ์ค ์ ์์ต๋๋ค.
ย
ย
Postman ๋ช ๋ น์ collection ์ ์ ์ฅํ๊ธฐ ๋ฐ ์์๋๋ก ์คํํ๊ธฐ
์ฐ์ธก ์๋จ์ Save ๋ฅผ ๋๋ฅด๋ฉด ํ์ฌ ๋ช ๋ น์ด๋ฅผ collection ์ผ๋ก ๊ตฌ๋ถํ์ฌ ์ ์ฅ ํ ์ ์์ต๋๋ค.
ย
ย
๋ค์๊ณผ ๊ฐ์ด ์ ์ฅ๋ ๋ช ๋ น์ด๋ฅผ ์์๋๋ก ์คํ ํ ์ ์์ต๋๋ค.
Postman Reqeust๋ฅผ collection์ผ๋ก ํ๋ฒ์ ์คํํ๊ธฐ
ย
๋ชจ๋ธ ํ์ผ ๋ฐ์ดํฐ ๊ฐ์ ธ์ค๊ธฐ
์ด๋ฆฐ ๋ชจ๋ธ ํ์ผ์ ๋ฐ์ดํฐ๋ http GET ๋ฉ์ธ์ง๋ฅผ ํตํด ๋ ๊ฐ๋จํ๊ฒ ๊ฐ์ ธ ์ฌ ์ ์์ต๋๋ค.
GET http://localhost:10024/db/matl
Postman์ ์ ๋ ฅ ๋ฐ ์๋ต
๋ฐ์ดํฐ ๊ฐ์ ธ์ค๊ธฐ(postman)
ย
http ๋ฉ์๋ ํ์ ์ ํ (GET)
api URI ์ ๋ ฅ
http://localhost:10024/db/matl
ย
๋ชจ๋ธ ํ์ผ ๋ฐ์ดํฐ ์ถ๊ฐํ๊ธฐ
์์ Get ๋ช ๋ น์ด๋ฅผ ํตํด ๊ฐ์ ธ์จ MATL(์ฌ์ง) ๋ฐ์ดํฐ๋ฅผ ์ผ๋ถ ์์ ํด ์๋ก์ด MATL ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐ ํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
POST http://localhost:10024/db/matl
content-type: application/json
{
"Assign": {
"2": {
"TYPE": "STEEL",
"NAME": "SS275-ByAPI",
"HE_SPEC": 0,
"HE_COND": 0,
"THMAL_UNIT": "C",
"PLMT": 0,
"P_NAME": "",
"bMASS_DENS": false,
"DAMP_RAT": 0.02,
"PARAM": [
{
"P_TYPE": 1,
"STANDARD": "KS18(S)",
"CODE": "",
"DB": "SS275",
"bELAST": false,
"ELAST": 210000000
}
]
}
}
}
Postman ์ ์ ๋ ฅ
ย
http ๋ฉ์๋ ํ์ ์ ํ (POST)
api URI ์ ๋ ฅ
http://localhost:10024/db/matl
Content-type ์ ํ
content-type: application/json
Body JSON ๋ฐ์ดํฐ ์ ๋ ฅ
์์ ๋ชจ๋ธ ํ์ผ ๋ฐ์ดํฐ ๊ฐ์ ธ์ค๊ธฐ์์ ๊ฒฐ๊ณผ๋ฅผ ๋ณต์ฌํ๊ณ ๋ถ์ฌ๋ฃ๊ธฐ
๋ชจ๋ธ ํ์ผ ๋ฐ์ดํฐ ๊ฐ์ ธ์ค๊ธฐ ๊ฒฐ๊ณผ ๋ณต์ฌ๋ฐ์ดํฐ ๋ถ์ฌ ๋ฃ๊ธฐ ๋ฐ ์์
๋ฐ์ดํฐ ์์ ๋ฐ์ดํฐ ์ด๋ฆ ๋ณ๊ฒฝ : MATL โ Assign
๋ฐ์ดํฐ Key ๋ณ๊ฒฝ : โ1โ โ โ2โ
๋ฐ์ดํฐ ์ด๋ฆ ๋ณ๊ฒฝ : โSS275โ โ โSS275-ByAPIโ
Send ๊ฒฐ๊ณผ ํ์ธ
๊ฒฐ๊ณผ๋ณด๊ธฐ ๋ฉ์์ง๋ ์์ ๋ ์์ ์ ๋๋ค.Gen์์ ๊ฒฐ๊ณผ ํ์ธ
ย
๋ชจ๋ธ ํ์ผ ๋ฐ์ดํฐ ์ ๋ฐ์ดํธ
์์ ๋ชจ๋ธ ํ์ผ ๋ฐ์ดํฐ ์ถ๊ฐ ์ ์ ์ฌํ ๋ฐฉ๋ฒ์ผ๋ก ์ด๋ฒ์๋ MATL(์ฌ์ง) ๋ฐ์ดํฐ๋ฅผ ๋ณ๊ฒฝ ํ๋๋ก ํ๊ฒ ์ต๋๋ค.
http ๋ฉ์๋ ํ์
์ด POST โ PUT ์ผ๋ก ๋ฐ๋ ๋ถ๋ถ์ ์ ์ ํ์๋ฉด ๋ฉ๋๋ค.
PUT http://localhost:10024/db/matl
content-type: application/json
{
"Assign": {
"2": {
"TYPE": "STEEL",
"NAME": "SS275-MOD",
"HE_SPEC": 0,
"HE_COND": 0,
"THMAL_UNIT": "C",
"PLMT": 0,
"P_NAME": "",
"bMASS_DENS": false,
"DAMP_RAT": 0.02,
"PARAM": [
{
"P_TYPE": 1,
"STANDARD": "KS18(S)",
"CODE": "",
"DB": "SS275",
"bELAST": false,
"ELAST": 210000000
}
]
}
}
}
postman ์ ์ ๋ ฅ
ย
http ๋ฉ์๋ ํ์ ์ ํ (PUT)
api URI ์ ๋ ฅ
http://localhost:10024/db/matl
Content-type ์ ํ
content-type: application/json
Body JSON ๋ฐ์ดํฐ ์ ๋ ฅ
์์ ์ ๋ ฅ์์ ์ฌ์ฉํ๋ ๋ฐ์ดํฐ ๊ทธ๋๋ก ๋ถ์ฌ๋ฃ๊ธฐ
๋ณ๊ฒฝํ๊ณ ์ ํ๋ ๋ฐ์ดํฐ๋ง ๋ณ๊ฒฝ
SEND ๊ฒฐ๊ณผ ํ์ธ
MATL ์ ๋ฐ์ดํธ ๊ฒฐ๊ณผGen์์ ๊ฒฐ๊ณผ ํ์ธ
Gen MATL ์ ๋ฐ์ดํธ
ํ์ํ ๋ฐ์ดํฐ๋ง ์ ๋ ฅํด ์ ๋ฐ์ดํธ
๋ชจ๋ธ ํ์ผ ์ ๋ฐ์ดํธ ์์ ์ค์ํ ๋ฐ์ดํฐ๋ ๋ณ๊ฒฝํ๊ณ ์ ํ๋ ๋ฐ์ดํฐ์์ ๊ณ ๋ คํ๋ฉด, ์ ๋ฐ์ดํธ ๋ช ๋ น์ ๋ง์ด ๋จ์ ํด ์ง ์ ์์ต๋๋ค. ์์ ์์ ์ ๊ฐ์ง๋ง ์ค์ ๋ก ๋ณ๊ฒฝ ํ๊ณ ์ ํ๋ ๋ฐ์ดํฐ๋ง์ BODY ๋ฐ์ดํฐ์ ๋ฃ์ด ๋์ ํ๋ ๋ฐฉ๋ฒ์ ๋๋ค.
**API ๊ฐ๋ฐ ์ด๊ธฐ์ ์ ๋ฐ์ดํธ์ ๋ํ ๊ณ ๋ ค๊ฐ ์์ด์, ์์ง ๋ง์ ๋ฐ์ดํฐ์์ ์ด๋ฐ ๋ช ๋ น์ด ๋ฐฉ์์ด ์ ๋๋ก ๋์ํ์ง ์์ ์ ์์ต๋๋ค.
PUT http://localhost:10024/db/matl
content-type: application/json
{
"Assign":{
"2": {
"NAME": "SS275-SIMPLE"
}
}
}
postman ์ ์ ๋ ฅ
postman matl update simple request
http ๋ฉ์๋ ํ์ ์ ํ (PUT)
api URI ์ ๋ ฅ
http://localhost:10024/db/matl
Content-type ์ ํ
content-type: application/json
Body JSON ๋ฐ์ดํฐ ์ ๋ ฅ
Send ๊ฒฐ๊ณผ ํ์ธ
postman matl update simple result
Gen ์์ ๊ฒฐ๊ณผ ํ์ธ
postman matl update simple result Gen
ย
๋ชจ๋ธ ๋ค๋ฅธ ์ด๋ฆ์ผ๋ก ์ ์ฅํ๊ธฐ
์์ํ๋ฉด์ API๋ก mcb ํ์ผ์ ์ด์๋ ๋ฐฉ์๊ณผ ์ ์ฌํ๊ฒ, ๋ชจ๋ธ ํ์ผ์ ๋ค๋ฅธ ์ด๋ฆ์ผ๋ก๋ ์ ์ฅ ํ ์ ์์ต๋๋ค.
POST http://localhost:10024/doc/saveas
content-type: application/json
{
"Argument": "C:\\MIDAS\\API\\Model\\test_rename.mgb"
}
postman ์ ๋ ฅ
http ๋ฉ์๋ ํ์ ์ ํ (POST)
api URI ์ ๋ ฅ
http://localhost:10024/doc/saveas
Content-type ์ ํ
content-type: application/json
Body JSON ๋ฐ์ดํฐ ์ ๋ ฅ
{"Argument": "C:\\MIDAS\\API\\Model\\test_XXXXXXX.mgb"}
C:\\MIDAS\\API\\Model\\test_XXXXXX.mgb โ ๋ด PC์ ์๋ ๊ฒฝ๋ก ์ ๋ ฅ
๊ฒฝ๋ก์ \\ ์ฌ์ฉ ์ฃผ์!
Send ๊ฒฐ๊ณผ ํ์ธ
Gen ๊ฒฐ๊ณผ ํ์ธ
ย
๋ชจ๋ธ ํด์ ํ๊ธฐ
์ด์ ํด์ ๋ช ๋ น์ด์ ํํ๋ฅผ ์์ํ ์ ์์ผ์ค ๊ฒ ๊ฐ์ต๋๋ค.
POST http://localhost:10024/doc/anal
content-type: application/json
{}
postman ์ ๋ ฅ
http ๋ฉ์๋ ํ์ ์ ํ (POST)
api URI ์ ๋ ฅ
http://localhost:10024/doc/anal
Content-type ์ ํ
content-type: application/json
Body JSON ๋ฐ์ดํฐ ์ ๋ ฅ
{}
๋น์ด์๋ ๋ฐ์ดํฐ
Body ๊ฐ ํ์ ์์ผ๋ฉด Get ๊ณผ ๊ฐ์๋ฐ, API ๋์์ธ์ Post ๊ฐ ์ ์ ํ ๊ฒ ๊ฐ์์..
Send ๊ฒฐ๊ณผ ํ์ธ
๊ฒฐ๊ณผ๋ณด๊ธฐ๋ ์์ ์์ , ํ์ฌ๋ Status : 200 OK๋ก ํ์ธ
ย
ย