본문 바로가기
항해99

[TIL] 항해 18일차

by yeaseul912 2022. 7. 28.
728x90

개인프로젝트 배포

RDS 구매

Database Navigator plugin 설치

intellj에서 RDS 연결

EC2설정

➜  ~ ssh -i {key} ubuntu@ec2-3-34-47-86.ap-northeast-2.compute.amazonaws.com
ubuntu@ip-172-31-45-171:~$ sudo apt-get update
....
Fetched 23.7 MB in 4s (5351 kB/s)
Reading package lists... Done
ubuntu@ip-172-31-45-171:~$ sudo apt-get install openjdk-11-jdk
....
done.
ubuntu@ip-172-31-45-171:~$ java -version
openjdk version "11.0.15" 2022-04-19
OpenJDK Runtime Environment (build 11.0.15+10-Ubuntu-0ubuntu0.20.04.1)
OpenJDK 64-Bit Server VM (build 11.0.15+10-Ubuntu-0ubuntu0.20.04.1, mixed mode, sharing)

jar파일 전송

실행

API Test

API명세서

Method URL function Request Response
GET /api/boards 전체 게시글 목록 - {
    "success": true,
    "data": [
        {
            "id": 1,
            "title": "title1",
            "author": "kim",
            "password": "1234",
            "content": "content1",
            "createAt": "2022-07-28T05:03:59.022+00:00",
            "modifiedAt": "2022-07-28T05:03:59.022+00:00"
        },
        {
            "id": 2,
            "title": "title2",
            "author": "kim",
            "password": "1234",
            "content": "content2",
            "createAt": "2022-07-28T05:15:53.095+00:00",
            "modifiedAt": "2022-07-28T05:15:53.095+00:00"
        },
        {
            "id": 3,
            "title": "title3",
            "author": "kim",
            "password": "1234",
            "content": "content3",
            "createAt": "2022-07-28T05:23:32.393+00:00",
            "modifiedAt": "2022-07-28T05:23:32.393+00:00"
        }
    ]
}
GET /api/boards/{id} 특정 게시글 가져오기 - {
    "success": true,
    "data": {
        "id": 3,
        "title": "title3",
        "author": "kim",
        "password": "1234",
        "content": "content3",
        "createAt": "2022-07-28T05:23:32.393+00:00",
        "modifiedAt": "2022-07-28T05:23:32.393+00:00"
    }
}
POST /api/boards 글쓰기 {
"title" : "title3",
"author" : "kim",
"content" : "content3",
"password" : "1234"
}
{
    "success": true,
    "data": {
        "id": 3,
        "title": "title3",
        "author": "kim",
        "password": "1234",
        "content": "content3",
        "createAt": "2022-07-28T05:23:32.393+00:00",
        "modifiedAt": "2022-07-28T05:23:32.393+00:00"
    }
}
POST /api/boards/auth/{id} 비밀번호 확인하기 password : 1234

password : 12345
{
    "success": true,
    "data": "비밀번호가 일치합니다."
}

{
    "success": false,
    "data": "비밀번호가 일치하지 않습니다."
}
PUT /api/boards/{id} 특정 게시글 수정하기 {
    "title" : "title3 update",
    "author" : "kim",
    "content" : "content3 update"
}
{
    "success": true,
    "data": {
        "id": 3,
        "title": "title3 update",
        "author": "kim",
        "password": "1234",
        "content": "content3 update",
        "createAt": "2022-07-28T05:23:32.393+00:00",
        "modifiedAt": "2022-07-28T05:27:19.442+00:00"
    }
}
DELETE /api/boards/{id} 특정 게시글 삭제하기 - {
    "success": true,
    "data": 2
}

pw 불러올때..

requestbody로 안됌

requestParam 으로 됌?

 

[Web] Param vs Query vs Body

request 객체는 API를 컨트롤하기 위한 메서드로 아래 세가지를 담고 있다.

  • param
  • query
  • body

param : 주소에 포함된 변수를 담는다. 서버에서 PathVariable 로 받는다.

ex) naver.com/post/12345

 

query : URL 끝에 ? 이후에 변수를 넣는다. &로 여러개의 데이터를 넘길수 있다. Query Parameter로 받는다.

ex) naver.com/post?post_id=1234&key=value 

 

body : xml, json, Multi Form 등의 데이터를 담는다. URL에서 확인할 수 없다. 개발자 도구에서 확인이 가능하니 민감한 데이터는 암호화 해서 보내도록 한다.

 

param vs query

resource 를 식별해야 하는 상황에서는 param(path variable)

정렬이나 필터링을 해야하는 상황에서는 query(query parameter)

 

query vs body

query 를 사용할 때

인수가 디버깅하는 동안 보고 싶을 때

코드를 개발하는 동안 수동으로 호출 할 수 있기를 원할 때

여러 웹 서비스에서 인수가 공통적인 경우

다음과 같은 다른 콘텐츠 유형을 이미 보내고 있는 경우 

 

body 를 사용할 때

인수에 플랫 키-값 구조가 없는 경우

직렬화 된 이진 데이터와 같이 값이 사람이 읽을 수 없는 경우

매우 많은 수의 인수가 있을 때. Body에는 제한이 없음

 

코드리뷰

구조적인것보다는 코드 위주

어떤 기능을 위해 코드를 이렇게 구현했다.

어떤 문제가 있었는데 어떻게 해결했다.

상대방 말 잘듣기

 

Reference

도메인과 네임서버

[Web] param vs query vs body

반응형

'항해99' 카테고리의 다른 글

[WIL] 3주차  (0) 2022.07.31
[TIL] 항해 19일차  (0) 2022.07.29
CRUD 와 HTTP Method  (0) 2022.07.26
[TIL] 항해14일차  (0) 2022.07.25
[WIL] 항해 2주차  (0) 2022.07.24

댓글