마이페인팅 - 사용자화 컬러링 도안 제작 서비스 API
requirements
- CMake >= 3.10.2
- JDK >= 1.8
- OpenCV == 4.5.5 compatible
Google ID Token을 받아 API 호출에 사용되는 JWT 토큰을 반환.
GET /user/auth
X-Auth-Token: {X-Auth-Token}
Content-Type: application/json
Name | Description |
---|---|
X-Auth-Token | Google OAuth2 사용자 Login ID 토큰 |
curl -X GET {BASE_URL}/user/auth \
-H 'X-Auth-Token: {X-Auth-Token}' \
-H 'Content-Type: application/json'
Name | Description |
---|---|
data.name | Google 프로필에 등록된 사용자 이름 |
data.jwt | 사용자 인증을 위해 API에 사용되는 JWT 토큰 |
{
"error": null,
"data": {
"name": "이수균",
"jwt": "eyJhbGciOiJIUzI..."
}
}
사용자가 등록한 모든 도안 정보를 반환
GET /pipo/list
Authorization: Bearer {JWT}
Content-Type: application/json
Name | Description |
---|---|
Authorization | Auth API를 사용해 발급받은 JWT 토큰 |
curl -X GET {BASE_URL}/pipo/list \
-H 'Authorization: Bearer {JWT}' \
-H 'Content-Type: application/json'
Name | Type | Description |
---|---|---|
data | Array of Pipo | 사용자가 등록한 모든 도안 정보 |
{
"error": null,
"data": [
{
"id": "ff80808183f0cfcd0183f0d2e2a90000",
"userId": "104113541111119136566",
"createdAt": "2022-10-20T00:18:15.970639",
"temp": false,
"processed": true,
"type": "jpeg",
"difficulty": 3
},
{
"id": "ff80808183f0cfcd0183f0d5cdaf0001",
"userId": "104113541111119136566",
"createdAt": "2022-10-20T00:21:27.214671",
"temp": false,
"processed": false,
"type": "jpeg",
"difficulty": 0
}
]
}
새로운 도안의 원본 이미지 업로드. 만약 인증정보를 생략하는 경우, 임시파일로 등록됨.
POST /pipo/new
Authorization: Bearer {JWT} # optional
Content-Type: multipart/form-data
Name | Description |
---|---|
Authorization (optional) | Auth API를 사용해 발급받은 JWT 토큰 |
Name | Description |
---|---|
file | MIME type이 image/png, image/gif, image/jpeg, image/bmp의 이미지 파일 |
curl -X POST {BASE_URL}/pipo/new \
-H 'Authorization: Bearer {JWT}' \
-H 'Content-Type: multipart/form-data'
-F 'file={FILE}'
Name | Type | Description |
---|---|---|
data | Pipo | 업로드한 원본이미지의 새로운 도안 정보 |
{
"error": null,
"data": {
"id": "ff80808183f0cfcd0183f0d5cdaf0001",
"userId": "104113541111119136566",
"createdAt": "2022-10-20T00:21:27.214671",
"temp": false,
"processed": false,
"type": "jpeg",
"difficulty": 0
}
}
업로드 되어 있는 원본 이미지를 원하는 난이도(쉬움, 중간, 어려움)을 사용하여 도안을 제작하여 서버에 저장.
PUT /pipo/process
Authorization: Bearer {JWT} # optional
Content-Type: application/json
Name | Description |
---|---|
Authorization (optional) | Auth API를 사용해 발급받은 JWT 토큰 |
Name | Description |
---|---|
id | 도안을 제작할 서버에 업로드 되어 있는 Pipo의 id |
difficulty | 도안을 제작할 새로운 difficulty(1, 2, 3 중의 하나의 값). |
curl -X PUT {BASE_URL}/pipo/process \
-H 'Authorization: Bearer {JWT}' \
-H 'Content-Type: application/json' \
-d '{
"id": "ff80808183f0cfcd0183f0d5cdaf0001",
"difficulty": 3
}'
Name | Type | Description |
---|---|---|
data | Pipo | 제작을 완료한 후의 도안 정보 |
{
"error": null,
"data": {
"id": "ff80808183f0cfcd0183f0d5cdaf0001",
"userId": "104113541111119136566",
"createdAt": "2022-10-20T00:21:27.214671",
"temp": false,
"processed": true,
"type": "jpeg",
"difficulty": 3
}
}
New API를 통해 업로드 되어 있는 원본 이미지나, Process API로 처리된 도안 또는 미리보기 이미지를 반환.
GET /pipo/{origin|processed|preview}/{id}
Authorization: Bearer {JWT} # optional
Content-Type: application/json
Name | Description |
---|---|
Authorization (optional) | Auth API를 사용해 발급받은 JWT 토큰 |
Name | Description |
---|---|
origin | 서버에 저장된 원본 이미지를 가져오기 위한 URI Path 변수 |
processed | 서버에 저장된 도안 이미지를 가져오기 위한 URI Path 변수 |
preview | 서버에 저장된 미리보기 이미지를 가져오기 위한 URI Path 변수 |
id | 원본, 도안 또는 미리보기 이미지를 가져올 Pipo의 id |
curl -X GET {BASE_URL}/pipo/preview/ff80808183f0cfcd0183f0d5cdaf0001 \
-H 'Authorization: Bearer {JWT}' \
-H 'Content-Type: application/json'
서버에 업로드 된 도안의 정보를 나타내는 자료형.
Name | Type | Description |
---|---|---|
id | String | New API를 통해 발급된 도안의 unique ID |
userId | String (Optional) | 도안에 사용자를 구분하는 unique ID. 게스트 유저가 생성하여 임시 파일인 경우에는 유효하지 않음. |
createdAt | Datetime | New API를 등록된 날짜와 시간 |
temp | Bool | 게스트 유저가 생성하여 임시 파일인 경우에 true 아니면 false |
processed | Bool | Process API를 사용하여 도안을 제작한 경우 true 아니면 false |
type | String | jpeg, png, bmp, gif 등 원본 파일의 형식 |
difficulty | Integer | 초기값은 0. Process API를 사용하여 도안을 제작한 경우 제작시 사용된 난이도(1~3) |
{
"id": "ff80808183f0cfcd0183f0d5cdaf0001",
"userId": "104113541111119136566",
"createdAt": "2022-10-20T00:21:27.214671",
"temp": false,
"processed": true,
"type": "jpeg",
"difficulty": 3
}