Skip to content

API Reference

์˜ค์ง€ํ™˜ edited this page Sep 24, 2021 · 18 revisions

User


User > ๋กœ๊ทธ์ธ

1. API ๊ธฐ๋ณธ ์ •๋ณด

๋ฉ”์„œ๋“œ ์š”์ฒญ URL ์„ค๋ช…
POST /login Handover ๋กœ๊ทธ์ธ

2. ์š”์ฒญ๋ณ€์ˆ˜

๋ณ€์ˆ˜๋ช… ํƒ€์ž… ํ•„์ˆ˜์—ฌ๋ถ€ ์„ค๋ช…
serviceNumber String Y ์‚ฌ์šฉ์ž ๊ตฐ๋ฒˆ
password String Y ์‚ฌ์šฉ์ž ๋น„๋ฐ€๋ฒˆํ˜ธ

3. ์ถœ๋ ฅ๊ฒฐ๊ณผ

ํ•„๋“œ ํƒ€์ž… ์„ค๋ช…
result String
token String JWT ํ† ํฐ

4. ์—๋Ÿฌ์ฝ”๋“œ

HTTP ์ฝ”๋“œ ์—๋Ÿฌ ๋ฉ”์„ธ์ง€ ์กฐ์น˜๋ฐฉ์•ˆ
401 Authentication Failed: ์ธ์ฆ์— ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค. ๋กœ๊ทธ์ธ ์„ธ์…˜์„ ํ™•์ธํ•ด์ฃผ์„ธ์š”.
500 Interner Server Error ์„œ๋ฒ„ ๋‚ด๋ถ€ ์˜ค๋ฅ˜์ž…๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž์—๊ฒŒ ๋ฌธ์˜ํ•˜์„ธ์š”.

User > ์‚ฌ์šฉ์ž ๊ฒ€์ƒ‰

1. API ๊ธฐ๋ณธ ์ •๋ณด

๋ฉ”์„œ๋“œ ์š”์ฒญ URL ์„ค๋ช…
GET /user Handover ํšŒ์› ์กฐํšŒ

2. ์š”์ฒญ๋ณ€์ˆ˜

๋ณ€์ˆ˜๋ช… ํƒ€์ž… ํ•„์ˆ˜์—ฌ๋ถ€ ์„ค๋ช…
serviceNumber String N ์‚ฌ์šฉ์ž ๊ตฐ๋ฒˆ
name String N ์‚ฌ์šฉ์ž ์ด๋ฆ„
groupName String N ์‚ฌ์šฉ์ž๊ฐ€ ์†Œ์†๋œ ๊ทธ๋ฃน ์ด๋ฆ„

3. ์ถœ๋ ฅ๊ฒฐ๊ณผ

ํ•„๋“œ ํƒ€์ž… ์„ค๋ช…
name String ์‚ฌ์šฉ์ž ์ด๋ฆ„
rank String ์‚ฌ์šฉ์ž ๊ณ„๊ธ‰
title String ์‚ฌ์šฉ์ž ์ง์œ„
group String ์‚ฌ์šฉ์ž๊ฐ€ ์†ํ•œ ๋ถ€์„œ
email String ์‚ฌ์šฉ์ž ์ด๋ฉ”์ผ
tel String ์‚ฌ์šฉ์ž ์ „ํ™”๋ฒˆํ˜ธ

4. ์—๋Ÿฌ์ฝ”๋“œ

HTTP ์ฝ”๋“œ ์—๋Ÿฌ ๋ฉ”์„ธ์ง€ ์กฐ์น˜๋ฐฉ์•ˆ
401 Authentication Failed: ์ธ์ฆ์— ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค. ๋กœ๊ทธ์ธ ์„ธ์…˜์„ ํ™•์ธํ•ด์ฃผ์„ธ์š”.
403 Forbidden: ๊ถŒํ•œ์ด ์—†์Šต๋‹ˆ๋‹ค.
404 Not Found: ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
500 Interner Server Error: ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์˜ค๋ฅ˜์ž…๋‹ˆ๋‹ค.

User > ์‚ฌ์šฉ์ž ์ƒ์„ฑ

1. API ๊ธฐ๋ณธ ์ •๋ณด

๋ฉ”์„œ๋“œ ์š”์ฒญ URL ์„ค๋ช…
POST /user Handover ์‚ฌ์šฉ์ž ์ƒ์„ฑ

2. ์š”์ฒญ๋ณ€์ˆ˜

๋ณ€์ˆ˜๋ช… ํƒ€์ž… ํ•„์ˆ˜์—ฌ๋ถ€ ์„ค๋ช…
serviceNumber String Y ์‚ฌ์šฉ์ž ๊ตฐ๋ฒˆ
password String Y ์‚ฌ์šฉ์ž ๋น„๋ฐ€๋ฒˆํ˜ธ
name String Y ์‚ฌ์šฉ์ž ์ด๋ฆ„
rank String Y ์‚ฌ์šฉ์ž ๊ณ„๊ธ‰
title String Y ์‚ฌ์šฉ์ž ์ง์œ„
groupId String Y ์‚ฌ์šฉ์ž ์†Œ์† ๋ถ€์„œ
email String Y ์‚ฌ์šฉ์ž ์ด๋ฉ”์ผ
tel String Y ์‚ฌ์šฉ์ž ์ „ํ™”๋ฒˆํ˜ธ

3. ์ถœ๋ ฅ๊ฒฐ๊ณผ

์ถœ๋ ฅ๊ฒฐ๊ณผ๋Š” ๋ณ„๋„๋กœ ์—†์œผ๋ฉฐ, ์ƒ์„ฑ์ด ์™„๋ฃŒ๋œ ๊ฒฝ์šฐ HTTP ์ฝ”๋“œ๊ฐ€ 201๋กœ ๋ฐ˜ํ™˜๋ฉ๋‹ˆ๋‹ค.

4. ์—๋Ÿฌ์ฝ”๋“œ

HTTP ์ฝ”๋“œ ์—๋Ÿฌ ๋ฉ”์„ธ์ง€ ์กฐ์น˜๋ฐฉ์•ˆ
400 ์ž˜๋ชป๋œ ์š”์ฒญ ํ•„์ˆ˜ ์š”์ฒญ ๋ณ€์ˆ˜๋“ค์„ ๋ชจ๋‘ ์ž…๋ ฅํ–ˆ๋Š”์ง€ ํ™•์ธํ•ด์ฃผ์„ธ์š”.
400 Duplicated Key Error: serviceNumber is already exists.
500 Interner Server Error ์„œ๋ฒ„ ๋‚ด๋ถ€ ์˜ค๋ฅ˜์ž…๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž์—๊ฒŒ ๋ฌธ์˜ํ•ด์ฃผ์„ธ์š”.

User > ์‚ฌ์šฉ์ž ์ •๋ณด ๊ฐฑ์‹ 

1. API ๊ธฐ๋ณธ ์ •๋ณด

๋ฉ”์„œ๋“œ ์š”์ฒญ URL ์„ค๋ช…
UPDATE /user Handover ์‚ฌ์šฉ์ž ์ •๋ณด ๊ฐฑ์‹ 

2. ์š”์ฒญ๋ณ€์ˆ˜

๋ณ€์ˆ˜๋ช… ํƒ€์ž… ํ•„์ˆ˜์—ฌ๋ถ€ ์„ค๋ช…
serviceNumber String Y ์‚ฌ์šฉ์ž ๊ตฐ๋ฒˆ
password String N ์‚ฌ์šฉ์ž ๋น„๋ฐ€๋ฒˆํ˜ธ
name String N ์‚ฌ์šฉ์ž ์ด๋ฆ„
rank String N ์‚ฌ์šฉ์ž ๊ณ„๊ธ‰
title String N ์‚ฌ์šฉ์ž ์ง์œ„
groupId String N ์‚ฌ์šฉ์ž ์†Œ์† ๋ถ€์„œ
email String N ์‚ฌ์šฉ์ž ์ด๋ฉ”์ผ
tel String N ์‚ฌ์šฉ์ž ์ „ํ™”๋ฒˆํ˜ธ

3. ์ถœ๋ ฅ๊ฒฐ๊ณผ

์ถœ๋ ฅ๊ฒฐ๊ณผ๋Š” ๋ณ„๋„๋กœ ์—†์œผ๋ฉฐ, ๋ณ€๊ฒฝ์ด ์™„๋ฃŒ๋œ ๊ฒฝ์šฐ HTTP ์ฝ”๋“œ๊ฐ€ 204๋กœ ๋ฐ˜ํ™˜๋ฉ๋‹ˆ๋‹ค.

4. ์—๋Ÿฌ์ฝ”๋“œ

HTTP ์ฝ”๋“œ ์—๋Ÿฌ ๋ฉ”์„ธ์ง€ ์กฐ์น˜๋ฐฉ์•ˆ
400 ์ž˜๋ชป๋œ ์š”์ฒญ ํ•„์ˆ˜ ์š”์ฒญ ๋ณ€์ˆ˜๋“ค์„ ๋ชจ๋‘ ์ž…๋ ฅํ–ˆ๋Š”์ง€ ํ™•์ธํ•ด์ฃผ์„ธ์š”.
401 Authentication Failed: ์ธ์ฆ์— ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค. ๋กœ๊ทธ์ธ ์„ธ์…˜์„ ํ™•์ธํ•ด์ฃผ์„ธ์š”.
403 Forbidden: ๊ถŒํ•œ์ด ์—†์Šต๋‹ˆ๋‹ค.
404 Not Found: ์š”์ฒญํ•œ ๊ตฐ๋ฒˆ์„ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
500 Interner Server Error ์„œ๋ฒ„ ๋‚ด๋ถ€ ์˜ค๋ฅ˜์ž…๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž์—๊ฒŒ ๋ฌธ์˜ํ•ด์ฃผ์„ธ์š”.

User > ์‚ฌ์šฉ์ž ์‚ญ์ œ

1. API ๊ธฐ๋ณธ ์ •๋ณด

๋ฉ”์„œ๋“œ ์š”์ฒญ URL ์„ค๋ช…
DELETE /user Handover ์‚ฌ์šฉ์ž ์‚ญ์ œ

2. ์š”์ฒญ๋ณ€์ˆ˜

๋ณ€์ˆ˜๋ช… ํƒ€์ž… ํ•„์ˆ˜์—ฌ๋ถ€ ์„ค๋ช…
serviceNumber String Y ์‚ฌ์šฉ์ž ๊ตฐ๋ฒˆ

3. ์ถœ๋ ฅ๊ฒฐ๊ณผ

์ถœ๋ ฅ๊ฒฐ๊ณผ๋Š” ๋ณ„๋„๋กœ ์—†์œผ๋ฉฐ, ์‚ญ์ œ๊ฐ€ ์™„๋ฃŒ๋œ ๊ฒฝ์šฐ HTTP ์ฝ”๋“œ๊ฐ€ 204๋กœ ๋ฐ˜ํ™˜๋ฉ๋‹ˆ๋‹ค.

4. ์—๋Ÿฌ์ฝ”๋“œ

HTTP ์ฝ”๋“œ ์—๋Ÿฌ ๋ฉ”์„ธ์ง€ ์กฐ์น˜๋ฐฉ์•ˆ
400 ์ž˜๋ชป๋œ ์š”์ฒญ ํ•„์ˆ˜ ์š”์ฒญ ๋ณ€์ˆ˜๋“ค์„ ๋ชจ๋‘ ์ž…๋ ฅํ–ˆ๋Š”์ง€ ํ™•์ธํ•ด์ฃผ์„ธ์š”.
401 Authentication Failed: ์ธ์ฆ์— ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค. ๋กœ๊ทธ์ธ ์„ธ์…˜์„ ํ™•์ธํ•ด์ฃผ์„ธ์š”.
403 Forbidden: ๊ถŒํ•œ์ด ์—†์Šต๋‹ˆ๋‹ค.
404 Not Found: ์š”์ฒญํ•œ ๊ตฐ๋ฒˆ์„ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
500 Interner Server Error ์„œ๋ฒ„ ๋‚ด๋ถ€ ์˜ค๋ฅ˜์ž…๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž์—๊ฒŒ ๋ฌธ์˜ํ•ด์ฃผ์„ธ์š”.

Item


Item > ์„œ๋ž ๊ฒ€์ƒ‰

1. API ๊ธฐ๋ณธ ์ •๋ณด

๋ฉ”์„œ๋“œ ์š”์ฒญ URL ์„ค๋ช…
GET /item Handover ์„œ๋ž ์กฐํšŒ

2. ์š”์ฒญ๋ณ€์ˆ˜

๋ณ€์ˆ˜๋ช… ํƒ€์ž… ํ•„์ˆ˜์—ฌ๋ถ€ ์„ค๋ช…
id String N ์„œ๋ž ID

3. ์ถœ๋ ฅ๊ฒฐ๊ณผ

ํ•„๋“œ ํƒ€์ž… ์„ค๋ช…
title String ์„œ๋ž ์ด๋ฆ„
content String ์„œ๋ž ๋‚ด์šฉ
ownerServiceNumber Object ์†Œ์œ ์ž
contributors [ Object, ] ๊ธฐ์—ฌ์ž๋“ค
accessGroups { read, edit } ์ ‘๊ทผ ๊ถŒํ•œ ๊ทธ๋ฃน๋“ค
history [ Object, ] ์ˆ˜์ • ๊ธฐ๋ก
lastModified String ์ตœ์ข… ์ˆ˜์ • ์ผ์‹œ
status String ์ƒํƒœ { draft: ์ž„์‹œ์ €์žฅ, archived: ๋ณด๊ด€, published: ๊ฒŒ์‹œ }
inspection Object ๋ณด์•ˆ ๊ฒ€์ˆ˜ ๊ฒฐ๊ณผ
comments [ Object, ] ๋Œ“๊ธ€๋“ค
tags [ String, ] ํƒœ๊ทธ๋“ค

4. ์ถœ๋ ฅ์˜ˆ์‹œ

์š”์ฒญ๋ณ€์ˆ˜ ๋ฏธ ์ž…๋ ฅ์‹œ

[
    {
        title: "์„œ๋ž01",
        owner: {
            name: "์กฐ๋‚˜๋‹จ",
            rank: "๋Œ€์œ„",
            groupName: "ํ•ด๊ตฐ ๊ตฐ์ˆ˜์‚ฌ๋ น๋ถ€"
        },
        contibutors: [
            { name: "์˜ค์ง€ํ™˜", rank: "์ค‘์‚ฌ", groupName: "ํ•ด๊ตฐ ๊ตฐ์ˆ˜์‚ฌ๋ น๋ถ€" }
        ],
        accessGroups: {
            read: [ "ํ•ด๊ตฐ ๊ตฐ์ˆ˜์‚ฌ๋ น๋ถ€", "ํ•ด๊ตฐ ๊ตฐ์ˆ˜์‚ฌ๋ น๋ถ€ ์ •๋ณดํ†ต์‹ ์ „๋Œ€" ],
            edit: [ "ํ•ด๊ตฐ ๊ตฐ์ˆ˜์‚ฌ๋ น๋ถ€" ]
        },
        lastModified: "2021-09-14 14:00:00",
        status: "published",
        inspection: {
            result: "true",
            by: { name: "๋ฐ•ํ˜„์ค€", "rank": "์ค‘๋ น", groupName: "ํ•ด๊ตฐ ๊ตฐ์ˆ˜์‚ฌ๋ น๋ถ€" },
            date: "2021-09-14 14:00:00"
        },
        tags: [ "์ธ์ˆ˜์ธ๊ณ„" ]
    },
    {
        title: "์„œ๋ž02",
        ...
    }
]

์š”์ฒญ๋ณ€์ˆ˜ ์ž…๋ ฅ์‹œ

{
    title: "์„œ๋ž01",
    content: "์„œ๋ž์€ ๋ฌธ์„œ๋“ค์„ ๋‹ด์„ ์ˆ˜ ์žˆ๋Š” ๊ณต๊ฐ„์ž…๋‹ˆ๋‹ค.",
    owner: {
        name: "์กฐ๋‚˜๋‹จ",
        rank: "๋Œ€์œ„",
        groupName: "ํ•ด๊ตฐ ๊ตฐ์ˆ˜์‚ฌ๋ น๋ถ€"
    },
    contibutors: [
        { name: "์˜ค์ง€ํ™˜", rank: "์ค‘์‚ฌ", groupName: "ํ•ด๊ตฐ ๊ตฐ์ˆ˜์‚ฌ๋ น๋ถ€" }
    ],
    accessGroups: {
        read: [ "ํ•ด๊ตฐ ๊ตฐ์ˆ˜์‚ฌ๋ น๋ถ€", "ํ•ด๊ตฐ ๊ตฐ์ˆ˜์‚ฌ๋ น๋ถ€ ์ •๋ณดํ†ต์‹ ์ „๋Œ€" ],
        edit: [ "ํ•ด๊ตฐ ๊ตฐ์ˆ˜์‚ฌ๋ น๋ถ€" ]
    },
    history: {
        { date: "2021-08-31 10:00:00", user: { name: "์กฐ๋‚˜๋‹จ", rank: "๋Œ€์œ„", groupName: "ํ•ด๊ตฐ ๊ตฐ์ˆ˜์‚ฌ๋ น๋ถ€" } }
    },
    status: "published",
    inspection: {
        result: "true",
        by: { name: "๋ฐ•ํ˜„์ค€", "rank": "์ค‘๋ น", groupName: "ํ•ด๊ตฐ ๊ตฐ์ˆ˜์‚ฌ๋ น๋ถ€" },
        date: "2021-09-14 14:00:00"
    },
    comments: [
        { content: "๋Œ“๊ธ€์ž…๋‹ˆ๋‹ค.", user: { name: "์˜ค์ง€ํ™˜", rank: "์ค‘์‚ฌ", groupName: "ํ•ด๊ตฐ ๊ตฐ์ˆ˜์‚ฌ๋ น๋ถ€" } }
    ],
    tags: [ "์ธ์ˆ˜์ธ๊ณ„" ]
}

5. ์—๋Ÿฌ์ฝ”๋“œ

HTTP ์ฝ”๋“œ ์—๋Ÿฌ ๋ฉ”์„ธ์ง€ ์กฐ์น˜๋ฐฉ์•ˆ
401 Authentication Failed: ์ธ์ฆ์— ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค. ๋กœ๊ทธ์ธ ์„ธ์…˜์„ ํ™•์ธํ•ด์ฃผ์„ธ์š”.
404 Not Found: ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
500 Interner Server Error: ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์˜ค๋ฅ˜์ž…๋‹ˆ๋‹ค.

Item > ์„œ๋ž ์ƒ์„ฑ

1. API ๊ธฐ๋ณธ ์ •๋ณด

๋ฉ”์„œ๋“œ ์š”์ฒญ URL ์„ค๋ช…
POST /item Handover ์„œ๋ž ์ƒ์„ฑ

2. ์š”์ฒญ๋ณ€์ˆ˜

ํ•„๋“œ ํƒ€์ž… ํ•„์ˆ˜์—ฌ๋ถ€ ์„ค๋ช…
title String Y ์„œ๋ž ์ด๋ฆ„
content String N ์„œ๋ž ๋‚ด์šฉ
accessGroups { read, edit } N ๊ฐ’ ๋ฏธ์ง€์ •์‹œ ์†Œ์†๋ถ€๋Œ€๋กœ ์„ค์ •
status String Y ์ƒํƒœ { draft: ์ž„์‹œ์ €์žฅ, archived: ๋ณด๊ด€, published: ๊ฒŒ์‹œ }
tags [ String, ] N ํƒœ๊ทธ๋“ค

3. ์š”์ฒญ์˜ˆ์ œ

{
    title: "์šฐ๋ฆฌ๋ถ€์„œ ์„œ๋ž",
    content: "์„œ๋ž์„ ๋งŒ๋“ค๊ณ  ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์–ด์š”.",
    accessGroups: {
        read: [ groupId ],
    },
    status: "draft",
    tags: [ "์šฐ๋ฆฌ๋ถ€๋Œ€", "ํ™”์ดํŒ…" ]
}

4. ์ถœ๋ ฅ๊ฒฐ๊ณผ

์ถœ๋ ฅ๊ฒฐ๊ณผ๋Š” ๋ณ„๋„๋กœ ์—†์œผ๋ฉฐ, ์ƒ์„ฑ์ด ์™„๋ฃŒ๋œ ๊ฒฝ์šฐ HTTP ์ฝ”๋“œ๊ฐ€ 201๋กœ ๋ฐ˜ํ™˜๋ฉ๋‹ˆ๋‹ค.

5. ์—๋Ÿฌ์ฝ”๋“œ

HTTP ์ฝ”๋“œ ์—๋Ÿฌ ๋ฉ”์„ธ์ง€ ์กฐ์น˜๋ฐฉ์•ˆ
400 ์ž˜๋ชป๋œ ์š”์ฒญ ํ•„์ˆ˜ ์š”์ฒญ ๋ณ€์ˆ˜๋“ค์„ ๋ชจ๋‘ ์ž…๋ ฅํ–ˆ๋Š”์ง€ ํ™•์ธํ•ด์ฃผ์„ธ์š”.
401 Authentication Failed: ์ธ์ฆ์— ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค. ๋กœ๊ทธ์ธ ์„ธ์…˜์„ ํ™•์ธํ•ด์ฃผ์„ธ์š”.
500 Interner Server Error: ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์˜ค๋ฅ˜์ž…๋‹ˆ๋‹ค.

Item > ์„œ๋ž ์ •๋ณด ๊ฐฑ์‹ 

1. API ๊ธฐ๋ณธ ์ •๋ณด

๋ฉ”์„œ๋“œ ์š”์ฒญ URL ์„ค๋ช…
UPDATE /item/:{์„œ๋žID} Handover ์„œ๋ž ์ •๋ณด ๊ฐฑ์‹ 

Item > ์„œ๋ž ์‚ญ์ œ

1. API ๊ธฐ๋ณธ ์ •๋ณด

๋ฉ”์„œ๋“œ ์š”์ฒญ URL ์„ค๋ช…
DELETE /item/:{์„œ๋žID} Handover ์„œ๋ž ์‚ญ์ œ

Item > ๋ฌธ์„œ ์ƒ์„ฑ

1. API ๊ธฐ๋ณธ ์ •๋ณด

๋ฉ”์„œ๋“œ ์š”์ฒญ URL ์„ค๋ช…
POST /item/:{์„œ๋žID} Handover ๋ฌธ์„œ ์ƒ์„ฑ
Clone this wiki locally