Get Started¶
Smart[Fleet] 시스템으로 커넥티드카 솔루션을 보다 쉽고 안전하게 만들어봅니다. 본 장에서는 Smart[Fleet] 기반으로 솔루션 개발하기 위해 필요한 기본 절차들에 대해서 함께 만들어보는 방법을 기술합니다. Smart[Fleet]으로 커넥티드카 솔루션을 구축하는 방법은 아래 그림과 같이 진행합니다.
1. Service Registration¶
Smart[Fleet]으로 커넥티드카를 사용하시기 위해서는 사용 권한을 부여받아야 하며, 최초에 Smart[Fleet] 엔티티 구조 에 따라 Company 를 등록하여야 합니다.
서비스를 운용하는 회사 Company 를 등록하고 해당 회사가 관리하는 차량 센서 Sensor 와 차량 Vehicle 등 을 등록하여 서비스를 구축할 수 있습니다.
서비스 등록은 Smart[Fleet] 홈페이지 에 서비스 등록 메뉴를 활용하시어 등록하면, 확인 절차를 거쳐 서비스를 생성하여 드립니다.
서비스 등록이 정상적으로 된 경우에는 등록하신 E-Mail을 통하여, 서비스 등록 결과를 발송하여 드리며, Smart[Fleet] 홈페이지에 정상적으로 접속하실 수 있습니다.
서비스 등록의 목적은 상술한 바와 같이 등록된 다양한 엔티티 Sensor, Vehicle, Driver 등에 대한 접근 권한을 받기 위함입니다.
Smart[Fleet]은 정상적으로 등록된 고객사에 한하여 플랫폼에 접근가능한 JWT Token(https://jwt.io)을 발급해 드리며, Token은 아래 API를 통해서 확인하실 수 있습니다.
JWT Token 확인 방법¶
서비스 등록을 위해서 할당 받은 계정이 아래와 같다고 가정합니다.
- ID : getStarted@smartfleet.sktelecom.com
- PW : test1234
REST API를 통해서 정상적으로 등록한 서비스의 토큰을 확인하는 방법은 Smart[Fleet]에서 제공하는 API(https://app.swaggerhub.com/apis/tremoteye/tremoteyeapi/1.0.0) 중에서 다음 API를 사용합니다.
HTTP Request¶
POST /api/auth/login HTTP/1.1
Host: smartfleet.sktelecom.com:8080
Content-Type: application/json
Cache-Control: no-cache
Postman-Token: 3a4d56c6-f7dd-8c6a-501f-9f66bcfe1cbf
{
"username":"getStarted@smartfleet.sktelecom.com",
"password":"test1234"
}
HTTP Response¶
{
"token": "eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJnZXRTdGFydGVkQHNtYXJ0ZmxlZXQuc2t0ZWxlY29tLmNvbSIsInNjb3BlcyI6WyJDT01QQU5ZX0FETUlOIl0sInVzZXJJZCI6IjM1ZDczOWYwLWI3MDAtMTFlNy04NDJiLWVkNmM0YTVjOTk5YiIsImVuYWJsZWQiOnRydWUsImlzUHVibGljIjpmYWxzZSwidGVuYW50SWQiOiIzNWQwZjg2MC1iNzAwLTExZTctODQyYi1lZDZjNGE1Yzk5OWIiLCJjdXN0b21lcklkIjoiMTM4MTQwMDAtMWRkMi0xMWIyLTgwODAtODA4MDgwODA4MDgwIiwiaXNzIjoiVCBSZW1vdEV5ZS5TSyBUZWxlY29tIiwiaWF0IjoxNTA4NjU5NzMwLCJleHAiOjE1MDk1MjM3MzB9.qJEucGPlV3UatchFVqlgdPDjJ6XL7sWOPAQ3bv39cARLThMcmFlRdFTxJslB8cek_kTRTz7_s5MHRJoKu63xqw",
"refreshToken": "eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJnZXRTdGFydGVkQHNtYXJ0ZmxlZXQuc2t0ZWxlY29tLmNvbSIsInNjb3BlcyI6WyJSRUZSRVNIX1RPS0VOIl0sInVzZXJJZCI6IjM1ZDczOWYwLWI3MDAtMTFlNy04NDJiLWVkNmM0YTVjOTk5YiIsImlzUHVibGljIjpmYWxzZSwiaXNzIjoiVCBSZW1vdEV5ZS5TSyBUZWxlY29tIiwianRpIjoiMDViNTYwMWEtZjBhNC00MzdmLWJlNjgtY2FiMDFiOTY2YjVkIiwiaWF0IjoxNTA4NjU5NzMwLCJleHAiOjE1MDk1MjM3MzB9.v7eb_wVtV3eIUeKlviVed_xXIB7PZmu8YFGZLaJJOVq2PF96VUYNPWkTs2Ia9UpKs8ceekW__hitRyaJvnYSTg"
}
본 Token 값은 외부 유출이 안되도록 주의하셔야 하며, HTTP Response의 token 값은 REST API 시 HTTP Header에 ``X-Authorization``의 값으로 사용됩니다.
주석
Smart[Fleet]의 정식 홈페이지는 10월 중순에 오픈하며, 그 전에는 hb.ahn@sk.com 으로 메일을 주시면, 서비스를 생성하여 드립니다.
Portal¶
2. Sensor Registration¶
서비스를 정상적으로 등록한 후에는 관리하고자 하는 차량 Vehicle 이나 차량 센서 Sensor 를 등록할 수 있습니다. 우선 차량 센서를 등록해보도록 하겠습니다.
차량은 센서는 2가지 방법으로 등록할 수 있습니다.
- Portal을 통한 센서 등록 방법
- REST API를 통한 센서 등록 방법
2.1 Portal을 통한 센서 등록 방법¶
(TBD)
2.2 REST API를 통한 센서 등록 방법¶
REST API를 통해서 센서를 등록하는 방법은 Smart[Fleet]에서 제공하는 API(https://app.swaggerhub.com/apis/tremoteye/tremoteyeapi/1.0.0) 중에서 다음 API를 사용합니다.
센서의 데이터는 Sensor Data Model 에 명시되어 있으며, 입력 필수 값을 아래와 같이 작성하여 API 호출합니다.
| Key | Example Value |
|---|---|
| vendor | sktelecom |
| type | OBD |
| credentialId | A1234567891234567891 |
| activationRequired | false |
| serialNo | a8d9321ef1932123-3213fa12 |
위의 값을 HTTP 값에 맞추어 요청을 하면 다음과 같은 호출이 됩니다.
HTTP Request¶
POST /api/tre/v1/sensor HTTP/1.1
Host: smartfleet.sktelecom.com:8080
Content-Type: application/json
X-Authorization: Bearer eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJnZXRTdGF0cmVkQHNtYXJ0ZmxlZXQuc2t0ZWxlY29tLmNvbSIsInNjb3BlcyI6WyJDT01QQU5ZX0FETUlOIl0sInVzZXJJZCI6IjBkMDBjMGUwLWI2ZjctMTFlNy04NDJiLWVkNmM0YTVjOTk5YiIsImVuYWJsZWQiOnRydWUsImlzUHVibGljIjpmYWxzZSwidGVuYW50SWQiOiIwY2YyZGUzMC1iNmY3LTExZTctODQyYi1lZDZjNGE1Yzk5OWIiLCJjdXN0b21lcklkIjoiMTM4MTQwMDAtMWRkMi0xMWIyLTgwODAtODA4MDgwODA4MDgwIiwiaXNzIjoiVCBSZW1vdEV5ZS5TSyBUZWxlY29tIiwiaWF0IjoxNTA4NjU3MzE4LCJleHAiOjE1MDk1MjEzMTh9.STB8t5lFtB5S5MwqEWC-y_BDeGp01m_2VjF58CZ5lu4xP3nrmGicX-iLt5PaaYXqOb2sG4j8XISSlcFX5cialg
Cache-Control: no-cache
{
"vendor": "sktelecom",
"type": "OBD",
"credentialsId":"A1234567891234567891",
"activationRequired": false,
"serialNo":"a8d9321ef1932123-3213fa12"
}
HTTP Response¶
{
"id": {
"id": "ae909ce0-b702-11e7-842b-ed6c4a5c999b"
},
"createdTime": 1508660780431,
"vehicleId": {
"id": "13814000-1dd2-11b2-8080-808080808080"
},
"companyId": {
"id": "35d0f860-b700-11e7-842b-ed6c4a5c999b"
},
"directorId": {
"id": "13814000-1dd2-11b2-8080-808080808080"
},
"status": "DEACTIVATED",
"vendor": "sktelecom",
"type": "OBD",
"additionalInfo": null,
"lastTripMsgType": null,
"activationRequired": false,
"vehicleNo": null,
"serialNo": "a8d9321ef1932123-3213fa12",
"credentialsId": "A1234567891234567891"
}
cURL Request¶
아래 코드는 cURL을 사용하여 REST API를 호출할 경우에 기입해야하는 값을 예로 표현합니다.
curl -X POST \
https://smartfleet.sktelecom.com:8080/api/tre/v1/sensor \
-H 'content-type: application/json' \
-H 'x-authorization: Bearer eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJnZXRTdGF0cmVkQHNtYXJ0ZmxlZXQuc2t0ZWxlY29tLmNvbSIsInNjb3BlcyI6WyJDT01QQU5ZX0FETUlOIl0sInVzZXJJZCI6IjBkMDBjMGUwLWI2ZjctMTFlNy04NDJiLWVkNmM0YTVjOTk5YiIsImVuYWJsZWQiOnRydWUsImlzUHVibGljIjpmYWxzZSwidGVuYW50SWQiOiIwY2YyZGUzMC1iNmY3LTExZTctODQyYi1lZDZjNGE1Yzk5OWIiLCJjdXN0b21lcklkIjoiMTM4MTQwMDAtMWRkMi0xMWIyLTgwODAtODA4MDgwODA4MDgwIiwiaXNzIjoiVCBSZW1vdEV5ZS5TSyBUZWxlY29tIiwiaWF0IjoxNTA4NjU3MzE4LCJleHAiOjE1MDk1MjEzMTh9.STB8t5lFtB5S5MwqEWC-y_BDeGp01m_2VjF58CZ5lu4xP3nrmGicX-iLt5PaaYXqOb2sG4j8XISSlcFX5cialg' \
-d '{
"vendor": "sktelecom",
"type": "OBD",
"credentialsId":"A1234567891234567890",
"activationRequired": false,
"serialNo":"a8d9321ef1932123-3213fa11"
}'
3. Vehicle Registration¶
서비스를 정상적으로 등록한 후에는 관리하고자 하는 차량 Vehicle 이나 차량 센서 Sensor 를 등록할 수 있습니다. 이번 절에서는 차량 ``Vehicle``을 등록해보도록 하겠습니다.
차량이 정상적으로 등록 된 경우에는 등록 된 센서와 차량을 매핑하는 절차를 거쳐보도록 하겠습니다.
3.1 Portal을 통한 차량 등록 방법¶
(TBD)
3.2 REST API를 통한 차량 등록 방법¶
REST API를 통해서 센서를 등록하는 방법은 Smart[Fleet]에서 제공하는 API(https://app.swaggerhub.com/apis/tremoteye/tremoteyeapi/1.0.0) 중에서 다음 API를 사용합니다.
차량의 데이터는 Sensor Data Model 에 명시되어 있으며, 입력 필수 값을 아래와 같이 작성하여 API 호출합니다.
| Key | Example Value |
|---|---|
| vehicleNo | 11테1111 |
| modelName | 그랜져 |
| modelCode | HG001 |
| vendor | 현대 |
| modelYear | 2017 |
| missionType | AUTO |
| fuelType | DIESEL |
| mileage | 11100 |
| category | ETC |
위의 값을 HTTP 값에 맞추어 요청을 하면 다음과 같은 호출이 됩니다.
HTTP Request¶
POST /api/tre/v1/vehicle HTTP/1.1
Host: smartfleet.sktelecom.com:8080
Content-Type: application/json
X-Authorization: Bearer eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJnZXRTdGFydGVkQHNtYXJ0ZmxlZXQuc2t0ZWxlY29tLmNvbSIsInNjb3BlcyI6WyJDT01QQU5ZX0FETUlOIl0sInVzZXJJZCI6IjM1ZDczOWYwLWI3MDAtMTFlNy04NDJiLWVkNmM0YTVjOTk5YiIsImVuYWJsZWQiOnRydWUsImlzUHVibGljIjpmYWxzZSwidGVuYW50SWQiOiIzNWQwZjg2MC1iNzAwLTExZTctODQyYi1lZDZjNGE1Yzk5OWIiLCJjdXN0b21lcklkIjoiMTM4MTQwMDAtMWRkMi0xMWIyLTgwODAtODA4MDgwODA4MDgwIiwiaXNzIjoiVCBSZW1vdEV5ZS5TSyBUZWxlY29tIiwiaWF0IjoxNTA4NjYwNDkyLCJleHAiOjE1MDk1MjQ0OTJ9.oYuSFmtlX74TMDWYLeaMuGoT9mKLdDmqmj03lm73FCjXoxuKX4_nxABRzs2tqwwnR0SPEHJSUHbrib55p9GcZA
{
"vehicleNo": "11테1111",
"modelName": "그랜져",
"modelCode": "HG001",
"vendor": "현대",
"modelYear" : "2017",
"missionType" : "AUTO",
"fuelType" : "DIESEL",
"mileage" : 11100,
"category" : "ETC"
}
HTTP Response¶
{
"id": {
"id": "b13978f0-b706-11e7-842b-ed6c4a5c999b"
},
"createdTime": 1508662502894,
"companyId": {
"id": "35d0f860-b700-11e7-842b-ed6c4a5c999b"
},
"directorId": {
"id": "13814000-1dd2-11b2-8080-808080808080"
},
"currentDriverId": {
"id": "13814000-1dd2-11b2-8080-808080808080"
},
"latestTripId": {
"id": "13814000-1dd2-11b2-8080-808080808080"
},
"serviceType": "getStarted_ex",
"vehicleNo": "11테1111",
"modelName": "그랜져",
"modelCode": "HG001",
"vendor": "현대",
"sensorCount": 0,
"status": "DEACTIVATED",
"additionalInfo": null,
"modelYear": 2017,
"usage": null,
"category": "ETC",
"missionType": "AUTO",
"fuelType": "DIESEL",
"displacement": 0,
"delegateUserCount": 0,
"lastTripMsgType": null
}
cURL Request¶
아래 코드는 cURL을 사용하여 REST API를 호출할 경우에 기입해야하는 값을 예로 표현합니다.
curl -X POST \
https://smartfleet.sktelecom.com:8080/api/tre/v1/vehicle \
-H 'content-type: application/json' \
-H 'x-authorization: Bearer eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJnZXRTdGFydGVkQHNtYXJ0ZmxlZXQuc2t0ZWxlY29tLmNvbSIsInNjb3BlcyI6WyJDT01QQU5ZX0FETUlOIl0sInVzZXJJZCI6IjM1ZDczOWYwLWI3MDAtMTFlNy04NDJiLWVkNmM0YTVjOTk5YiIsImVuYWJsZWQiOnRydWUsImlzUHVibGljIjpmYWxzZSwidGVuYW50SWQiOiIzNWQwZjg2MC1iNzAwLTExZTctODQyYi1lZDZjNGE1Yzk5OWIiLCJjdXN0b21lcklkIjoiMTM4MTQwMDAtMWRkMi0xMWIyLTgwODAtODA4MDgwODA4MDgwIiwiaXNzIjoiVCBSZW1vdEV5ZS5TSyBUZWxlY29tIiwiaWF0IjoxNTA4NjYwNDkyLCJleHAiOjE1MDk1MjQ0OTJ9.oYuSFmtlX74TMDWYLeaMuGoT9mKLdDmqmj03lm73FCjXoxuKX4_nxABRzs2tqwwnR0SPEHJSUHbrib55p9GcZA' \
-d '{
"vehicleNo": "11테1111",
"modelName": "그랜져",
"modelCode": "HG001",
"vendor": "현대",
"modelYear" : "2017",
"missionType" : "AUTO",
"fuelType" : "DIESEL",
"mileage" : 11100,
"category" : "ETC"
}'