๐ChangeLog
ChangeLog
Last updated
ChangeLog
Last updated
์น ์ด๋ฏธ์ง ์ต์๋จ ์ด๋ ๋ถ๊ฐ ์์ : ์น์์ ์ด๋ฏธ์ง๋ฅผ ์ต์๋จ์ผ๋ก ์ด๋ํ์ง ๋ชปํ๋ ์ค๋ฅ ์์ .
lat, lng ์๋ ์ด๋ฏธ์ง ํด๋ ์ด๋ ์ ์๋ฌ ์ถ๋ ฅ ์์ : ์๋์ ๊ฒฝ๋๊ฐ ์๋ ์ด๋ฏธ์ง๋ฅผ ํด๋๋ก ์ด๋ํ ๋ ๋ฐ์ํ๋ ์๋ฌ ์์ .
ํด๋๋ช ์ด ํ๊ธ์ผ ๋ ์ค๋ฆ์ฐจ์, ๋ด๋ฆผ์ฐจ์ ๋๋๋ก ์์ : ํด๋๋ช ์ด ํ๊ธ์ผ ๋ ์ ๋ ฌ(์ค๋ฆ์ฐจ์, ๋ด๋ฆผ์ฐจ์) ๊ฐ๋ฅํ๋๋ก ์ต์ข ์์ .
๋ฐฑ์คํผ์ค ์ ์ ์ธํฌ ์๋ํฌ์ธํธ ์ด๋ฏธ์ง ๊ฐ์ 0์ผ ์ ๋ฐํํ๋ ์ํ ์ฝ๋ ๋ณ๊ฒฝ: ๋ฐฑ์คํผ์ค ์ ์ ์ ๋ณด ์๋ํฌ์ธํธ์์ ์ด๋ฏธ์ง ๊ฐ์๊ฐ 0์ผ ๊ฒฝ์ฐ '404 ์๋ฌ' ๋์ '200 ์ํ ์ฝ๋'๋ฅผ ๋ฐํํ๋๋ก ๋ณ๊ฒฝ.
์ฌ๋ฌ ์ ์ ๊ฐ root ์์น์์ ๊ฐ์ ํด๋ ์ด๋ฆ์ ๊ฐ์ง ์ ์๋ ์ค๋ฅ ์์ : ์ฌ๋ฌ ์ ์ ๊ฐ root ์์น์์ ๊ฐ์ ํด๋ ์ด๋ฆ์ ์ฌ์ฉํ ์ ์์๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐ.
๋ฆฌ์ฌ์ด์ง ์ฒ๋ฆฌ: ํ์ชฝ ๋ฉด์ด 1024์ผ ๋ ๋ฆฌ์ฌ์ด์ง ์ฒ๋ฆฌํ์ง ์์์ผ๋ก ์ค์ ํ์ฌ ์๋ ๊ฐ์ .
์๋ ๊ฐ์ ์์ : ์ด๋ฏธ์ง ๋ฐ ํด๋ ๊ด๋ จ ์๋ํฌ์ธํธ์ ๋ฐ์ธ๋ฉ ๋ฐ ์ฟผ๋ฆฌ ์ต์ ํ ๋ฑ ์๋ ๊ฐ์ ์์ ์ ์ฉ.
์ปค์คํ ์๋ฌ ์ ์ฉ: ์ ๋ก๋ ํํธ์์์ ์๋ฌ ํธ๋ค๋ง ์ฝ๋๊ฐ ์ ์ฉ๋์ด, ์๋ฌ ๋ฐ์ ์ ์๋ต ํ์ ๋ณ๊ฒฝ.
PUT ์ด๋ฏธ์ง ์๋ฌ ์์ : latitude
์ longitude
๊ฐ์ ์์ผ๋ has_det
๊ฐ None
์ธ ๊ฒฝ์ฐ address_sort
๊ฐ์ ์
๋ฐ์ดํธ๊ฐ ์ด๋ฃจ์ด์ง์ง ์๋ ์ค๋ฅ ์์ .
์ฑ๋ฅ ์ต์ ํ: GET /platforms/info
์ ๋ํ ์ฑ๋ฅ ์ต์ ํ(CPU ์ฌ์ฉ์จ ๊ธ์ฆ ์ด์ ๊ด๋ จ).
์ฃผ์ ํธ๋ค๋ง ์ค๋ฅ ์์ : address_sort
์์ฑ ์ "์, ๋ฉด, ๋" ์ด์ธ์ ์ฃผ์(โ๊ฐโ)๋ฅผ ์ ๋๋ก ์ฒ๋ฆฌํ์ง ๋ชปํ๋ ์ค๋ฅ ์์ .
์ฃผ์ ๋ฐ์ดํฐ None ์ฒ๋ฆฌ: ์ฃผ์ ๊ด๋ จ ๊ฐ๋ค์ด ๋ชจ๋ None์ผ ๊ฒฝ์ฐ, ์ด๋ฏธ์ง ์์ ์ด ๋ถ๊ฐ๋ฅํ๋ ์ค๋ฅ ์์ . (PUT /images/image_id)
GPS ๊ฐ ์๋ฌ ์์ : ์ด๋ฏธ์ง EXIF์ GPS ๊ฐ์ด 0์ผ๋ก ์ค์ ๋ ๊ฒฝ์ฐ, ์ ๋ก๋ ๋ถ๊ฐ๋ฅํ๋ ์ค๋ฅ ์์ . (POST /images)
WINDOW FUNCTION ์ ์ฉ: CPU ์ฌ์ฉ๋ฅ ๊ธ์ฆ ๋ฌธ์ ํด๊ฒฐ์ ์ํด, WINDOW FUNCTION ์ ์ฉ. (GET /platforms/info)
๋๋ณด๊ธฐ ์ฃผ์๋ณ ์ด๋ฏธ์ง ๋ฏธ๋ ธ์ถ ํด๊ฒฐ: ๋๋ณด๊ธฐ ๊ธฐ๋ฅ์์, ์ฃผ์๋ณ ์ผ๋ถ ์ด๋ฏธ์ง๊ฐ ๋ ธ์ถ๋์ง ์๋ ์ด์๋ฅผ ํด๊ฒฐ. (GET /images)
No changes
ํด๋ ์กฐํ ์ ํด์งํต ์ด๋ฏธ์ง ์ฒ๋ฆฌ: ํด๋ ์์ ํด๋ ์์ด ์ด๋ฏธ์ง๋ง ์๋ ๊ฒฝ์ฐ, ํด์งํต์ ์๋ ์ด๋ฏธ์ง๋ ์กฐํ๋๋ ์ค๋ฅ ์์
ํ๋ซํผ์ผ๋ณ ํต๊ณ ์๋ํฌ์ธํธ ์ถ๊ฐ
GET api/v2/platforms/{platform_id}/stats
ํ๋ซํผ์ ์ฒด ํต๊ณ ์๋ํฌ์ธํธ ์ถ๊ฐ
GET api/v2/platforms/{platform_id}/stats/total
GIT BOOK INIT
Folder Full depth ์กฐํ ์๋ํฌ์ธํธ ์ถ๊ฐ (GET https://service-stage.pic-origin.com/api/v1/users/{user_id}/folders)
ํน์ ์ ์ ํน์ ์ด๋ฏธ์ง(์์ ๋ณธ) ์ฌ๋ฌ ๊ฑด ์กฐํ ์๋ํฌ์ธํธ ์ถ๊ฐ (POST https://service-stage.pic-origin.com/api/v1/users/{user_id}/filedata)
์ด๋ฏธ์ง ๋ฆฌ์คํฐ์ค์ ํ์ผ์ฌ์ด์ฆ, ํด์๋, ํ์ฅ์ ์ถ๊ฐ
GET images ์์
์ฟผ๋ฆฌ ํ๋ผ๋ฏธํฐ address -> search ๋ณ๊ฒฝ
์ฟผ๋ฆฌ ํ๋ผ๋ฏธํฐ search_type ์ถ๊ฐ
filename ํ์ ์์
created_at ๊ณผ image๊ฐ ๊ฐ์ ์ ์ด๋ฏธ์ง ๋ฎ์ด์ฐ๊ธฐ ๋๋ ์ด์ ํด๊ฒฐ์ ์ํจ
๊ธฐ์กด filename : {created_at}_{image_hash}_{image_version}.{image_type} โ ํ์ฌ filename : {server_time}_{created_at}_{image_hash}_{image_version}.{image_type}
server_time = ์ฐ๋์์ผ_์๋ถ์ด_๋ฐ๋ฆฌ์ธ์ปจ๋ (ex) 20240215_153045_123)
GET api/v1/platforms/{platform_id}/users/{user_id}
access_token ์ฌ๋ฐ๊ธ๋๋๋ก ์์
๋ฆฌ์คํฐ์ค์ access_token ์ถ๊ฐ
GET api/v1/platforms/{platform_id}/users
platform_user_id์ access_token ์ฌ๋ฐ๊ธ ์๋ํฌ์ธํธ ์์ฒญ
platform_user_id ์ฟผ๋ฆฌํ๋ผ๋ฏธํฐ ์ถ๊ฐ
GET api/v1/users/{user_id}/folders
ํด๋ ์์น ํ์ธ๋๋๋ก ์์
๋ฆฌ์คํฐ์ค์ parent_title ์ถ๊ฐ(์์ ํด๋์ ์ด๋ฆ)
GET api/v1/users/{user_id}/folders/{folder_id}
ํด๋ ์์น ํ์ธ๋๋๋ก ์์
๋ฆฌ์คํฐ์ค์ current_path ์ถ๊ฐ(folder_id ์ ํด๋นํ๋ path๊ฐ)
POST api/v1/users/{user_id}/images/share
์ด๋ฏธ์ง ๊ณต์ ๋ฅผ ์ํ ์๋ํฌ์ธํธ ์ถ๊ฐ
ํค ๋ณ๊ฒฝ : filedata_ids โ image_ids
GET api/v1/users/{user_id}/folders/{folder_id}
๋ฆฌ์คํฐ์ค์ current_path_id ์ถ๊ฐ
GET api/v1/users/{user_id}/images/{image_id}/extrafield
ํน์ ์ ์ ์ ํน์ ์ด๋ฏธ์ง์ extra_field๋ฅผ ์กฐํํ๋ ์๋ํฌ์ธํธ ์ถ๊ฐ
POST api/v1/users/{user_id}/images
is_shared : bool -> str ์์
has_det : bool -> str ์์
PUT api/v1/users/{user_id}/images/{image_id}
has_det : bool -> str ์์
delete : bool -> str ์์
PUT api/v1/users/{user_id}/folders/{folder_id}
delete : bool -> str ์์
๋ชจ๋ ํ์ผ์ฌ์ด์ฆ์ ๋ํ ๋ฆฌ์คํฐ์ค ๋ณ๊ฒฝ
*_filesize-> *_filesize_mb
๋ชจ๋ ๋ฆฌ์คํฐ์ค์ extra_field ์ญ์
extra_field ์กฐํ ์๋ํฌ์ธํธ ์ญ์
PUT api/v1/users/{user_id} ์ถ๊ฐ
max_storage_mb ์์ ๋ชฉ์
GET api/v1/users/{user_id}/info ์ถ๊ฐ
ํน์ ์ ์ ์ ์ ๋ณด ์กฐํ ๋ชฉ์
GET api/v1/users/{user_id}/images/{image_id} ์์
search_type ์ 'days_range', 'date_range' ์ถ๊ฐ
search_type == days_range ๊ฒฝ์ฐ, days_range ์ ๋ถํฐ ํ์ฌ๊น์ง
search_type == date_range ๊ฒฝ์ฐ, start_date ~ end_date
search_date_by [created_at, updated_at]์ถ๊ฐ (ํด๋น ๊ฐ์ ๊ธฐ์ค์ผ๋ก ๊ธฐ๊ฐ ๊ฒ์ ํํฐ๋ง)
POST api/v1/users/{user_id}/images/{image_id}/memo ์ถ๊ฐ
POST api/v1/users/{user_id}/images/{image_id}/custom ์ถ๊ฐ
view_type == grid_sep ์ ๋ฆฌ์คํฐ์ค์ total_images ์ถ๊ฐ
Memo
POST url ์ ./memo โ ./memos ๋ก ์์
GET api/v1/users/{user_id}/images/{image_id}/memos ์ถ๊ฐ
PUT api/v1/users/{user_id}/images/{image_id}/memos/{memo_id} ์ถ๊ฐ
DELETE api/v1/users/{user_id}/images/{image_id}/memos/{memo_id} ์ถ๊ฐ
Custom
POST url ์ ./custom โ ./customs ๋ก ์์
GET api/v1/users/{user_id}/images/{image_id}/customs ์ถ๊ฐ
PUT api/v1/users/{user_id}/images/{image_id}/customs/{custom_id} ์ถ๊ฐ
DELETE api/v1/users/{user_id}/images/{image_id}/customs/{custom_id} ์ถ๊ฐ
์ด๋ฏธ์ง ๋จ๊ฑด, ๋ค๊ฑด ์กฐํ + ํด๋ ๋จ๊ฑด ์กฐํ API "with_memo", "with_custom" ์ฟผ๋ฆฌํ๋ผ๋ฏธํฐ ์ถ๊ฐ
์ด๋ฏธ์ง ๋จ๊ฑด, ๋ค๊ฑด ์กฐํ + ํด๋ ๋จ๊ฑด ์กฐํ "memos", "customs" ์ถ๊ฐ
"with_memo", "with_custom" == False or None -> ์ด๋ฏธ์ง ๋ฆฌ์คํฐ์ค์ "memos", "customs" : null
"with_memo", "with_custom" == True -> ์ด๋ฏธ์ง ๋ฆฌ์คํฐ์ค์ "memos", "customs": [...]
GET api/v1/users/{user_id}/images ์์
"search_type" ์ "days_range", "date_range" ์ญ์
"days_or_date_range" == [days_range, date_range] ์ฟผ๋ฆฌ ํ๋ผ๋ฏธํฐ ์ถ๊ฐ
-> "search_type" + "days_or_date_range" ๋ฅผ ํตํด ์กฐ๊ฑด ์ค์ฒฉ ๊ฐ๋ฅ
POST, PUT, DELETE : Memo ๋ฆฌ์คํฐ์ค์ ์ด๋ฏธ์ง ๋ฆฌ์คํฐ์ค ์ถ๊ฐ
GET api/v1/platforms/{platform_id}/info ์์
part_total_filesize_mb, total_filesize_mb ๋ฆฌ์คํฐ์ค ์ถ๊ฐ
GET api/v1/users/{user_id}/folders ์์
has_delete_at ์ฟผ๋ฆฌ ํ๋ผ๋ฏธํฐ ์ถ๊ฐ
GET api/v1/users/{user_id}/folders ์์
has_delete_at ์ฟผ๋ฆฌ ํ๋ผ๋ฏธํฐ default = None ์ผ๋ก ์์
GET api/v1/users/{user_id}/images/group ์ถ๊ฐ
์ด๋ฏธ์ง ๊ทธ๋ฃจํ ๋ฆฌ์คํฐ์ค ์ ๋ฌ ์ํจ
๋ชจ๋ ์ด๋ฏธ์ง ๊ด๋ จ ๋ฆฌ์คํฐ์ค์ 'address_land_number' ์ถ๊ฐ
GET api/v1/users/{user_id}/images/group ์์
latitude, longitude, use_radius, radius ์ฟผ๋ฆฌ ํ๋ผ๋ฏธํฐ ์ถ๊ฐ
latitude, longitude, use_radius ๋ ๋ฐ๊ฒฝ ์กฐํ ์ ํ์ ๊ฐ (radius ์์ ์, latitude, longitude ์ ๋ํด์ 100 ๋ฏธํฐ ๋ฐ๊ฒฝ ์กฐํ)
POST api/v1/users/{user_id}/images ์์
์ด๋ฏธ์ง ์ ๋ก๋ ์ '๊ณต์ ์ด๋ฏธ์ง'์ ๊ฒฝ์ฐ ๋ฉ๋ชจ๋ฅผ ๋ถ์ฌ์ ์ ๋ก๋ํ๊ธฐ ์ํจ
message : str ์ถ๊ฐ
is_shared : True ์ผ์, message ๊ฐ ํ์
์ธํผ๋ํฐ ์คํฌ๋กค ๊ตฌํ
GET api/v1/users/{user_id}/images
page ์ฟผ๋ฆฌ ํ๋ผ๋ฏธํฐ ์ญ์
last_index ์ฟผ๋ฆฌ ํ๋ผ๋ฏธํฐ ์ถ๊ฐ
๋ฆฌ์คํฐ์ค ๋ณ๊ฒฝ
page, total_pages, total_images ์ญ์
last_index ์ถ๊ฐ
GET api/v1/users/{user_id}/images/group
page ์ฟผ๋ฆฌ ํ๋ผ๋ฏธํฐ ์ญ์
last_index ์ฟผ๋ฆฌ ํ๋ผ๋ฏธํฐ ์ถ๊ฐ
๋ฆฌ์คํฐ์ค ๋ณ๊ฒฝ
page, total_pages, total_images ์ญ์
last_index ์ถ๊ฐ
GET api/v1/users/{user_id}/folders/{folder_id}
page ์ฟผ๋ฆฌ ํ๋ผ๋ฏธํฐ ์ญ์
last_index ์ฟผ๋ฆฌ ํ๋ผ๋ฏธํฐ ์ถ๊ฐ
๋ฆฌ์คํฐ์ค ๋ณ๊ฒฝ
page, total_pages, total_images ์ญ์
last_index ์ถ๊ฐ
GET api/v1/users/{user_id}/images/group/paged ์ถ๊ฐ
์ธํผ๋ํฐ์คํฌ๋กค๋ก ๋ณ๊ฒฝ๋๊ธฐ ์ ํ์ด์ง๋ค์ด์ ์ฒ๋ฆฌ ๋ฐฉ์๊ณผ ์ผ์น
GET api/v1/users/{user_id}/images/count ์ถ๊ฐ
ํด๋น ์ ์ ์ ์ด๋ฏธ์ง ๊ฐ์ ์ถ๋ ฅ
DELETE api/v1/users/{user_id} ์ถ๊ฐ
ํด๋น ์ ์ ์ ์ ์ฒด ๋ฐ์ดํฐ ์ญ์