simple API Server (GET, POST, PATCH)

정승렬·2022년 8월 28일
0

구현 방향

가정
1. 이미 저장된 데이터가 있다고 가정(배열 변수에 각 사용자를 객체로 저장, userID로 검색)
2. 새로 입력 받는 사용자 정보는 기존 정보 뒤에 저장
3. 출력(GET) 생성(POST) 수정(PATCH) 내용 구현

1. 이미 저장된 데이터

const users = [
        {
            userID: 1,
            userName: 'Rebekah Johnson',
            postingId: 1,
            postingTitle: '간단한 HTTP API 개발 시작!',
            postingContent: 'Node.js에 내장되어 있는 http 모듈을 사용해서 server를 구현',
        },
        {
            userID: null,
            userName: '',
            postingId: null,
            postingTitle: '',
            postingContent: ','
        },
    ]

2. 사용자 출력(GET)

 if(method === 'GET') {
        if(url === '/users/signup') {
                response.writeHead(200,{'Content-Type' : 'application/json'})
                response.end(JSON.stringify({"users" : users}));
        };
    }

3. 사용자 생성

else if (method === "POST") {
        if (url === "/users/signup"){
            let body = "";

            request.on("data", (data) => {
                body += data;
            });

            request.on("end", () => {
                const user = JSON.parse(body);

                users.push({
                    userID: user.userID,
                    userName: user.userName,
                    postingId: user.postingId,
                    postingTitle: user.postingTitle,
                    postingContent: user.postingContent
                });
                response.writeHead(200,{'Content-Type' : 'application/json'})
                response.end(JSON.stringify({"users" : users}));
            });
        }
    }

4. 사용자 수정

else if(method === 'PATCH') {
        if(url === '/users/signup') {
            let body = "";

            request.on("data", (data) =>{
                body += data;
            });

            request.on("end", () => {
                const user = JSON.parse(body);
                const index = null;
                const inputUserIdStr = user.userId;
                const inputUserId = parseInt(inputUserIdStr);
                for(let i = 0; i < users.length-1; i++){
                    if(users[i].userID === inputUserId){
                        if(user.userName === users[i].userName){
                            users[i].userID = users[i].userID;
                        }
                        else if(user.userName !== users[i].userName){
                            console.log(users[i].userName);
                            console.log(user.userName);
                            users[i].userName = user.userName;
                        }
                        if(user.postingId === users[i].postingId){
                            users[i].postingId = users[i].postingId
                        }
                        else if(user.postingId !== users[i].postingId){
                            users[i].postingId = user.postingId;
                        }
                        if(user.postingTitle === users[i].postingTitle){
                            users[i].postingTitle = users[i].postingTitle
                        }
                        else if(user.postingTitle !== users[i].postingTitle){
                            users[i].postingTitle = user.postingTitle;
                        }
                        
                        if(user.postingContent === users[i].postingContent){
                            users[i].postingContent = users[i].postingContent
                        }
                        else if(user.postingContent !== users[i].postingContent){
                            users[i].postingContent = user.postingContent;
                        }
                    }
                }
            })
            response.writeHead(200,{'Content-Type' : 'application/json'})
            response.end(JSON.stringify({"users" : users}));
        };
    }

PATCH 기능 간단 설명

  1. 기존 데이터의 userID를 검색 후 해당 객체로 이동
  2. userName, postingId, postinTitle, postinContent를 비교하여 입력값과 다르면 수정

0개의 댓글