rainy-browny / cotion

노션 벤치마킹 프로젝트 입니다
0 stars 0 forks source link

백엔드 프론트엔드 api 스펙 정의 #1

Open qlqhqo2341 opened 4 years ago

qlqhqo2341 commented 4 years ago
qlqhqo2341 commented 4 years ago

코션 페이지 모델

{
    "id": "integer : 페이지 id",
    "owner" : "string : user id",
    "createdt" : "integer : unix timestamp in ms",
    "updatedt" : "integer : unix timestamp in ms",
    "blockList" : [
        {
            "":"코션 블록 모델"
        },
    ]
}

코션 블록 인터페이스 모델

{
    "id": "integer : 블록 id",
    "type": "string(enum) : block type",
    "options" : {
        "":"코션 블록 옵션"
    },
    "contents" : {
        "":"코션 블록 데이터"
    }
}

id는 블록 이하 생략

코션 플레인 텍스트 블록

{
    "type": "plain_text",
    "options" : {
        "font-size" : "int: ",
        "font-size-unit" : "string: px | em | rem",
        "font" : "string(enum): ?? ",
    },
    "contents" : {
        "text" : "string : 텍스트"
    }
}

코션 할일 블록

{
    "type": "todo",
    "options" : {},
    "contents" : {
        "components" : [
            {
                "finished" : "boolean : 완료 여부",
                "duedt" : "int: unix tiemstamp in ms",
                "text" : "텍스트"
            },
        ]
    }
}

코션 이미지 블록

{
    "type":"image",
    "options" : {},
    "contents" : {
        "width":"int",
        "height": "int",
        "size-unit" : "string(enum) : px | em | rem",
        "url": "string: image url"
    }
}

코션 캘린더 블록 (?)

{
    "type": "calendar",
    "options" : {},
    "contents" : {
        "schedules" : [
            {
                "title" : "string",
                "startdt" : "int : unix timestamp in ms",
                "enddt" : "int : unix timestamp in ms"
            },
        ]
    }
}

코션 페이지 API

리스트 조회

GET /api/page/list

request query param
response
{
    "success" : "boolean",
    "pageList" : [
        {
            "id": "int : 페이지 id"
        },
    ]
}

페이지 상세 조회

GET /api/page/{pageId}

request query param
response
{
    "succes" : "boolean",
    "page" : {
        "":"코션 페이지 모델"
    }
}

생성

POST /api/page

request body
{
    "userId" : "string",
    "page" : {
        "":"코션 페이지 모델, id 제외"
    }
}
response
{
    "success" : "boolean",
    "pageId" : "int : page id"
}

수정

PATCH /api/page/{id}

request body
{
    "userId" : "string",
    "page" : {
        "":"코션 페이지 모델, id 제외"
    }
}
response
{
    "success" : "boolean",
    "pageId" : "int : page id"
}

삭제

DELETE /api/page/{id}

request query param
response
{
    "success" : "boolean",
    "pageId" : "int : page id"
}