Post 7

인프런 워밍업 클럽 0기 - BE 2일차 과제

문제 1 두 수를 입력하면, 다음과 같은 결과 나오는 GETAPI를 만들어 보자! path : /api/v1/calc이다. 쿼리 파라미터 : num1, num2 1. CalculatorController @RestController public class CalculatorController { @GetMapping("/api/v1/calc") public Calc Calculator(CalcNumber request) { return new Calc(request); } } 2. Calc Class package com.group.libraryapp.homework; public class Calc { private int add; private int minus; private int multiply..

Inflearn 2024.02.21

HTTP API 설계 예시

HTTP API 설계 예시를 살펴보자. HTTP API - 컬렉션 POST 기반 등록 예) 회원 관리 API 제공 HTTP API - 스토어 PUT 기반 등록 예) 정적 컨텐츠 관리, 원격 파일 관리 HTML FORM 사용 웹 페이지 회원 관리 GET, POST만 지원 회원 관리 시스템을 만든다고 하자. / members는 collections라고 한다. 회원 목록 / members => GET 회원 등록 / members => POST 회원 조회 / members/{id} -> GET 회원 수정 / members/{id} -> PATCH, PUT, POST 회원 삭제 / members/{id} -> DELETE POST -신규 자원 등록 특징 클라이언트는 등록될 리소스의 URI를 모른다. 회원 등록 /..

HTTP 2022.04.27

클라이언트에서 서버로 데이터 전송

클라이언트에서 서버로 데이터 전송 HTTP API 설계 예시 데이터 전달 방식은 크게 2가지가 있는데 쿼리 파라미터를 통한 데이터 전송 GET 주로 정렬 필터(검색어) 메시지 바디를 통한 데이터 전송 POST, PUT, PATCH 회원 가입, 상품 주문, 리소스 등록, 리소스 변경 4가지 상황을 보자. 정적 데이터 조회 이미지, 정적 텍스트 문서 동적 데이터 조회 주로 검색, 게시판 목록에서 정렬 필터(검색어) HTML Form을 통한 데이터 전송 회원 가입, 상품 주문, 데이터 변경 HTTP API를 통한 데이터 전송 회원 가입, 상품 주문, 데이터 변경 서버 to 서버, 앱 클라이언트, 웹 클라이언트(Ajax) 정적 데이터 조회 쿼리 파라미터 미사용 이미지 리소스를 만들어서 클라이언트에게 내려준다. ..

HTTP 2022.04.27

HTTP 메서드의 속성

안전(Safe Methods) 멱등(Idempotent Methods) 캐시가능(Cacheable Methods) 안전(Safe) Safe 호출해도 리소스를 변경하지 않는다. 계속 호출을 하여서 로그 같은게 쌓여서 장애가 발생하면? 안전은 해당 리소스만 고려 / 그러한 부분까지 고려 안한다. 멱등(Idempotent) f(f(x)) = f(x) 한 번 호출하든 두 번 호출하든 100 번을 호출하든 결과가 같다. 멱등 메서드 GET: 한 번 조회를 하든, 두 번 조회하든 같은 결과가 조회된다. PUT: 결과를 대체하는데 같은 요청을 여러번 해도 최종 결과는 같다. DELETE: 결과를 삭제하는데 같은 요청을 여러번 해도 삭제된 결과는 같다. POST: 이 아이는 멱등이 아니다. 두 번 호출하면 같은 결제가..

HTTP 2022.04.27

HTTP 메서드 - GET, POST

HTTP 메서드 종류를 알아보자. 주요 메서드 GET: 리소스 조회 POST: 요청 데이터 처리, 주로 등록에 사용 PUT: 리소스를 대체, 해당 리소스가 없으면 생성 PATCH: 리소스 부분 변경 DELETE: 리소스 삭제 기타 메서드 HEAD: GET과 동일하지만 메시지 부분을 제외하고, 상태 줄과 헤더만 반환 OPTIONS: 대상 리소스에 대한 통신 가능 옵션(메서드)을 설명(주로 CORS에서 사용) CONNECT: 대상 자원으로 식별되는 서버에 대한 터널을 설정 TRACE: 대상 리소스에 대한 경로를 따라서 메시지 루프백 테스트를 수행 GET 리소스 조회 서버에 전달하고 싶은 데이터는 query(쿼리 파라미터, 쿼리 스트링)을 통해서 전달. 메시지 바디를 사용해서 데이터 전달 가능하지만, 지원하지..

HTTP 2022.04.27

HTTP 요청 데이터 - API 메시지 바디 - JSON

HTTP API에서 사용하는 JSON 형식으로 데이터를 전달해보자. JSON 형식 전송 POST http://localhost:8080/request-body-json content-type: application/json message body: {"username": "hello", "age": 20} 결과: messageBody = {"username": "hello", "age": 20} 출력되게 만들어 보자. HelloData Class를 만들어주고 lombok 라이브러리가 있으니까 getter setter을 직접 쓰는 대신에 어노테이션으로 넣어준다. // basic - HelloData Class package hello.setvlet.basic; import lombok.Getter; imp..

Spring/SpringMVC 2022.04.22

HTTP 요청 데이터 - POST HTML Form - 로그 에러

이제 HTML의 Form을 이용해 클라이언트에서 서버로 데이터를 전송해보자. 회원가입, 상품 주문 등에서 사용하는 방식이다. content-type: application/x-www-form-urlencoded 메시지 바디에 쿼리 파라미터 형식으로 데이터를 전달한다. username=hello&age=20 기본적으로 html 파일을 하나 만들어주자.(hello-form.html) username: age: 전송 Form Data는 안보이네??,,,, 결과를 확인하게 되면 // RequestParamServlet Class System.out.println("[전체 파라미터 조회] - start"); request.getParameterNames().asIterator() // paramName은 user..

Spring/SpringMVC 2022.04.21