
Contents
2. API 문서1. HTTP & HTTP
- 인터넷에서 정보를 주고 받을 때 사용되는 프로토콜
- 웹 브라우저와 웹 서버 간의 통신 담당
- 포트 443을 사용하여 통신
포트 80을 사용하면 443으로 리다이렉션(307) 됨
300번대는 리다이렉션
HTTP (Hypertext Transfer Protocol)
- 웹 브라우저와 웹 서버 간의 데이터 전송을 위한 텍스트 기반의 프로토콜
- 보안 기능이 부족하며, 데이터가 암호화되지 않기 때문에 중간자 공격에 취약
- 주로 웹 페이지 로드, 이미지, 동영상 등의 데이터를 전송할 때 사용
- 보안 기능이 부족하고 데이터가 암호화되지 않기 때문에 공개키 사용 안함
HTTPS (Hypertext Transfer Protocol Secure)
- HTTP의 보안된 버전
데이터 전송 중에 암호화를 제공하여 보안 강화
- TLS(Transport Layer Security) 또는 SSL(Secure Sockets Layer) 프로토콜을 사용
→ 데이터를 암호화하고, 이를 통해 정보의 안전한 전송 보장
- 서버와의 통신을 보호하기 위해 공개키 암호화를 사용
공개키 : 서버 인증서에 포함
주로 서버에서 클라이언트로 전송
클라이언트(예: 웹 브라우저) - 서버로부터 전송된 인증서를 수신
인증서에 포함된 공개키를 사용하여 통신을 암호화
- 웹 브라우저 : HTTPS로 액세스하는 웹 사이트의 서버 인증서를 검색해서 사용
- 민감한 정보를 전송하는 웹사이트(로그인, 결제 등)나 인터넷 상의 기밀 정보 전송에 사용

2. API 문서
- 공통코드
code : 1 통신 정상
code : -1 통신 실패
- 회원가입
요청 주소 (POST)
- http://localhost:8080/join
요청 파라미터
- application/json
{
"username":"getinthere",
"password":"1234",
"email":"getinthere@nate.com"
}
응답 바디
- application/json
{
"code": 1,
"msg": "회원가입완료",
"data": {
"id": 3,
"username": "getinthere",
"password": null,
"email": "getinthere@nate.com",
"created": "2021-07-10T07:45:15.764705",
"updated": "2021-07-10T07:45:15.764705"
}
}
- 로그인
요청 주소 (POST)
- http://localhost:8080/login
요청 파라미터
- application/json
{
"username":"getinthere",
"password":"1234"
}
응답 헤더
Authorization : Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJjb3PthqDtgbAiLCJpZCI6MywiZXhwIjoxNjI1ODc0Mzk1fQ.u_pUd7mwmE0KWWV_o7QDPkGg7Nyo_avYOwYwI5ZdIWluMltXfECQyYq9nVPzXGFZz89mOYLmYMazeYgfZwgVMw
응답 바디
- application/json
{
"code": 1,
"msg": "success",
"data": {
"id": 3,
"username": "getinthere",
"password": "1234",
"email": "getinthere@nate.com",
"created": [
2021,
7,
10,
7,
45,
15,
764705000
],
"updated": [
2021,
7,
10,
7,
45,
15,
764705000
]
}
}
- 회원정보수정
요청 주소 (PUT)
- http://localhost:8080/user/3
요청 헤더
Authorization : Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJjb3PthqDtgbAiLCJpZCI6MywiZXhwIjoxNjI1ODc0Mzk1fQ.u_pUd7mwmE0KWWV_o7QDPkGg7Nyo_avYOwYwI5ZdIWluMltXfECQyYq9nVPzXGFZz89mOYLmYMazeYgfZwgVMw
요청 파라미터
- application/json
{
"password":"5678",
"email":"getinthere@gmail.com"
}
응답 바디
- application/json
{
"code": 1,
"msg": "회원정보수정완료",
"data": {
"id": 3,
"username": "getinthere",
"password": "5678",
"email": "getinthere@gmail.com",
"created": "2021-07-10T07:45:15.764705",
"updated": "2021-07-10T07:50:13.7016973"
}
}
- 회원정보 한건보기
요청 주소 (GET)
- http://localhost:8080/user/3
요청 헤더
Authorization : Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJjb3PthqDtgbAiLCJpZCI6MywiZXhwIjoxNjI1ODc0Mzk1fQ.u_pUd7mwmE0KWWV_o7QDPkGg7Nyo_avYOwYwI5ZdIWluMltXfECQyYq9nVPzXGFZz89mOYLmYMazeYgfZwgVMw
응답 바디
- application/json
{
"code": 1,
"msg": "회원정보확인완료",
"data": {
"id": 3,
"username": "getinthere",
"password": "1234",
"email": "getinthere@nate.com",
"created": "2021-07-10T08:06:24.483245",
"updated": "2021-07-10T08:06:24.483245"
}
}
- 게시글 목록보기
요청 주소 (GET)
- http://localhost:8080/post
요청 헤더
Authorization : Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJjb3PthqDtgbAiLCJpZCI6MywiZXhwIjoxNjI1ODc0Mzk1fQ.u_pUd7mwmE0KWWV_o7QDPkGg7Nyo_avYOwYwI5ZdIWluMltXfECQyYq9nVPzXGFZz89mOYLmYMazeYgfZwgVMw
응답 바디
- application/json
{
"code": 1,
"msg": "목록보기완료",
"data": [
{
"id": 5,
"title": "제목5",
"content": "내용5",
"user": {
"id": 2,
"username": "cos",
"password": "1234",
"email": "cos@nate.com",
"created": "2021-07-10T08:05:49.039117",
"updated": "2021-07-10T08:05:49.039117"
},
"created": "2021-07-10T08:05:49.069037",
"updated": "2021-07-10T08:05:49.069037"
},
{
"id": 4,
"title": "제목4",
"content": "내용4",
"user": {
"id": 2,
"username": "cos",
"password": "1234",
"email": "cos@nate.com",
"created": "2021-07-10T08:05:49.039117",
"updated": "2021-07-10T08:05:49.039117"
},
"created": "2021-07-10T08:05:49.068049",
"updated": "2021-07-10T08:05:49.068049"
},
{
"id": 3,
"title": "제목3",
"content": "내용3",
"user": {
"id": 1,
"username": "ssar",
"password": "1234",
"email": "ssar@nate.com",
"created": "2021-07-10T08:05:49.0082",
"updated": "2021-07-10T08:05:49.0082"
},
"created": "2021-07-10T08:05:49.062057",
"updated": "2021-07-10T08:05:49.062057"
},
{
"id": 2,
"title": "제목2",
"content": "내용2",
"user": {
"id": 1,
"username": "ssar",
"password": "1234",
"email": "ssar@nate.com",
"created": "2021-07-10T08:05:49.0082",
"updated": "2021-07-10T08:05:49.0082"
},
"created": "2021-07-10T08:05:49.060063",
"updated": "2021-07-10T08:05:49.060063"
},
{
"id": 1,
"title": "제목1",
"content": "내용1",
"user": {
"id": 1,
"username": "ssar",
"password": "1234",
"email": "ssar@nate.com",
"created": "2021-07-10T08:05:49.0082",
"updated": "2021-07-10T08:05:49.0082"
},
"created": "2021-07-10T08:05:49.057069",
"updated": "2021-07-10T08:05:49.057069"
}
]
}
- 게시글 한건보기
요청 주소 (GET)
- http://localhost:8080/post/1
요청 헤더
Authorization : Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJjb3PthqDtgbAiLCJpZCI6MywiZXhwIjoxNjI1ODc0Mzk1fQ.u_pUd7mwmE0KWWV_o7QDPkGg7Nyo_avYOwYwI5ZdIWluMltXfECQyYq9nVPzXGFZz89mOYLmYMazeYgfZwgVMw
응답 바디
- application/json
{
"code": 1,
"msg": "상세보기완료",
"data": {
"id": 1,
"title": "제목1",
"content": "내용1",
"user": {
"id": 1,
"username": "ssar",
"password": "1234",
"email": "ssar@nate.com",
"created": "2021-07-10T08:05:49.0082",
"updated": "2021-07-10T08:05:49.0082"
},
"created": "2021-07-10T08:05:49.057069",
"updated": "2021-07-10T08:05:49.057069"
}
}
- 게시글 쓰기
요청 주소 (POST)
- http://localhost:8080/post
요청 바디
- application/json
{
"title":"제목6",
"content":"내용6"
}
요청 헤더
Authorization : Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJjb3PthqDtgbAiLCJpZCI6MywiZXhwIjoxNjI1ODc0Mzk1fQ.u_pUd7mwmE0KWWV_o7QDPkGg7Nyo_avYOwYwI5ZdIWluMltXfECQyYq9nVPzXGFZz89mOYLmYMazeYgfZwgVMw
응답 바디
- application/json
{
"code": 1,
"msg": "글쓰기완료",
"data": {
"id": 6,
"title": "제목6",
"content": "내용6",
"user": {
"id": 3,
"username": "getinthere",
"password": "1234",
"email": "getinthere@nate.com",
"created": "2021-07-10T08:06:24.483245",
"updated": "2021-07-10T08:06:24.483245"
},
"created": "2021-07-10T08:11:05.5290593",
"updated": "2021-07-10T08:11:05.5290593"
}
}
- 게시글 수정하기
요청 주소 (PUT)
- http://localhost:8080/post/6
요청 바디
- application/json
{
"title":"제목변경",
"content":"내용변경"
}
요청 헤더
Authorization : Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJjb3PthqDtgbAiLCJpZCI6MywiZXhwIjoxNjI1ODc0Mzk1fQ.u_pUd7mwmE0KWWV_o7QDPkGg7Nyo_avYOwYwI5ZdIWluMltXfECQyYq9nVPzXGFZz89mOYLmYMazeYgfZwgVMw
응답 바디
- application/json
{
"code": 1,
"msg": "수정하기완료",
"data": {
"id": 6,
"title": "제목변경",
"content": "내용변경",
"user": {
"id": 3,
"username": "getinthere",
"password": "1234",
"email": "getinthere@nate.com",
"created": "2021-07-10T08:06:24.483245",
"updated": "2021-07-10T08:06:24.483245"
},
"created": "2021-07-10T08:11:05.529059",
"updated": "2021-07-10T08:11:52.9494383"
}
}
- 게시글 삭제하기
요청 주소 (DELETE)
- http://localhost:8080/post/6
요청 헤더
Authorization : Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJjb3PthqDtgbAiLCJpZCI6MywiZXhwIjoxNjI1ODc0Mzk1fQ.u_pUd7mwmE0KWWV_o7QDPkGg7Nyo_avYOwYwI5ZdIWluMltXfECQyYq9nVPzXGFZz89mOYLmYMazeYgfZwgVMw
응답 바디
- application/json
{
"code": 1,
"msg": "삭제하기완료",
"data": null
}
3. JWT 서버 Git 자료
4. 완성 플러터 GetX git 자료
Share article