API Specification Doc
คู่มือการใช้งาน API สำหรับแลกเปลี่ยนข้อมูลระหว่างหน่วยงาน กองทุนเงินให้กู้ยืมเพื่อการศึกษา และ กองทุนเพื่อความเสมอภาคทางการศึกษา (สำหรับ กยศ. ดึงข้อมูลจาก กสศ.)
Description
คู่มือฉบับนี้ จัดทำขึ้นมาเพื่ออธิบายข้อตกลงการใช้ API ในการรับส่งข้อมูลระหว่างหน่วยงานกองทุนเงินให้กู้ยืมเพื่อการศึกษา กับ กองทุนเพื่อความเสมอภาคทางการศึกษา
Key สำหรับการส่งข้อมูล
- username และ password คือ ชื่อผู้ใช้และรหัสผ่านสำหรับการเข้าใช้งาน API เพื่อให้ได้ token สำหรับ authorization เพื่อใช้งานในแต่ละ request
- authorization คือ token สำหรับเข้าใช้งาน API โดย token นี้จะได้มากจากการ login ด้วย username และ password ข้างต้น
รูปแบบของข้อมูลในการส่ง
- รูปแบบของข้อมูลจะอยู่ในรูปแบบของ json ที่มีการทำการเข้ารหัสข้อมูลด้วยวิธี AES 256 โดย key ในการเข้ารหัสจะใช้เป็น password ของ user โดยใช้ ผลลัพธ์ที่เป็น Base64 ในการส่งข้อมูล
API List
- URL: Development Version : https://slfapi-dev.eef.or.th
- URL: Production Version : https://slfapi-prod.eef.or.th
API Name | API Desc |
---|---|
/auth/login | ใช้สำหรับ login เพื่อรับ token ในการใช้งาน API |
/api/get_from_eef | ใช้สำหรับรับข้อมูล |
API List
1. Service: Login ใช้สำหรับ Login เพื่อรับ token ในการใช้งาน API
Request
API Type: Restful Web Service
Content-Type: application/json
Method: POST
URL: { base_path }/auth/login
Type | Parameters | Values |
---|---|---|
POST | username | ชื่อผู้ใช้ |
POST | password | รหัสผ่าน |
ตัวอย่างการส่ง (request)
{
method: 'POST',
url: ‘{base_path }/auth/login’,
headers: { 'content-type': 'application/json' },
body: { username: 'username', password: 'password' },
json: true
};
ตัวอย่าง Response Status 200
{
"user":
{
"_id": "c2cba2b0f5e611eab1d9f343ebc67b45",
"user": "username",
"application": "slf",
"profile": {
"title": "นาย",
"firstname": "ทดสอบ",
"lastname": "นามสกุลทดสอบ",
"email": "email@gmail.com",
"tel": "0988888888"
},
"roles": [
"exchange"
],
"timestamp": "1600018448906"
},
"token": "eyJhbGcxxxxxxxxxxxxxxxxx.xxxxx"
}
ตัวอย่าง Response Status 400
{
"message": "Invalid Username",
"user": false
}
2. Service: get_from_eef ใช้สำหรับรับข้อมูล Request
API Type: Restful Web Service
Content-Type: application/json
Method: POST
URL: {base_path}/api/get_from_eef
Type | Parameters | Values |
---|---|---|
HEADERS | Authorization | JWT (เว้นวรรค + token ที่ได้จากการ login ในข้อ 1) |
POST | citizenID | รหัสประจำตัว 13 หลัก |
ตัวอย่างการส่ง (request)
{
method: 'POST',
url: ‘{base_path }/api/get_from_eef ‘,
headers:
{
Authorization: 'JWT eyJhbGciOiJSUzIxxxxI6IkpXVCJ9.eyJfaWQiOiJjMxxx',
'content-type': 'application/json'
},
body: { citizenID: '0222222222221' },
json: true
};
ตัวอย่าง Response Status 200
{
"data":"Wj0DLJ7amnJrug94nFZTppSOSv1VpFijG6sNp8hZX8gqVs7ZEK5g1UooLFLVBPnvEF3aNNgRjBjo4UmBg4Q31ufx1iO0qBSoPC8BoCeR0eec1p3eEQ+VDJT87njHK1DoDmZ3l+5y9WNMKpwX3mA2onuXvhIUsjU/0UI1VxUU7jzdupKCPWhYk6Ngg20BuhaS1zP6zqm+MCvr83XMhDPhpKkxpl/ywsfqvc1AgslCxid/KW9y9rJQyjabYGur/IBVJQQ4FNw2OW9DtvDAuGvMkSdz5SXa7TmYn1beRlwXvL3auDiNr3Rvje/Yno+"
}
ตัวอย่าง Response Status 401
Unauthorized
Author : Theerawut Thaweephattharawong
Email : Theerawutt53@gmail.com
git clone https://gitlab.com/theerawutt53/eef-slf.git &&
cd eef-slf &&
npm install &&
npm start