Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- JoinColumn
- spring서버
- git
- jpa회원가입
- Unsatisfied dependency
- 스프링 부트 기능
- Spring Spring boot 차이
- @IdClass
- uncheck Exception
- Error creating bean with name
- jwt메서드
- Q 클래스
- json
- 1차캐시
- json gson 차이
- 최종 프로젝트
- 스프링 부트 공식 문서
- 스프링부트오류
- 복합키
- JPA
- github
- jpa에러
- 인텔리제이
- ERD 작성
- 빈생성안됨
- REST란
- REST API 규칙
- queryDSL
- JPA주의사항
- Filter
Archives
- Today
- Total
Everyday Dev System
RestTemplate - get방식 : Server 코드 설명 본문
Client 역할의 서버 관련 글:
2023.06.20 - [내배캠 주요 학습/Spring 심화] - RestTemplate - get방식 : Client 서버 코드 설명
더보기
[controller] -
package com.sparta.springresttemplateserver.controller;
import com.sparta.springresttemplateserver.dto.ItemResponseDto;
import com.sparta.springresttemplateserver.dto.UserRequestDto;
import com.sparta.springresttemplateserver.entity.Item;
import com.sparta.springresttemplateserver.service.ItemService;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/api/server")
public class ItemController {
private final ItemService itemService;
public ItemController(ItemService itemService) {
this.itemService = itemService;
}
@GetMapping("/get-call-obj")
public Item getCallObject(@RequestParam String query) {
return itemService.getCallObject(query);
}
@GetMapping("/get-call-list")
public ItemResponseDto getCallList() {
return itemService.getCallList();
}
@PostMapping("/post-call/{query}")
public Item postCall(@PathVariable String query, @RequestBody UserRequestDto requestDto) {
return itemService.postCall(query, requestDto);
}
@PostMapping("/exchange-call")
public ItemResponseDto exchangeCall(@RequestHeader("X-Authorization") String token, @RequestBody UserRequestDto requestDto) {
return itemService.exchangeCall(token, requestDto);
}
}
[dto] -
package com.sparta.springresttemplateserver.dto;
import com.sparta.springresttemplateserver.entity.Item;
import lombok.Getter;
import java.util.ArrayList;
import java.util.List;
@Getter
public class ItemResponseDto {
private final List<Item> items = new ArrayList<>();
public void setItems(Item item) {
items.add(item);
}
}
[dto] -
package com.sparta.springresttemplateserver.dto;
import lombok.Getter;
@Getter
public class UserRequestDto {
private String username;
private String password;
}
[entity] -
package com.sparta.springresttemplateserver.entity;
import lombok.Getter;
@Getter
public class Item {
private String title;
private int price;
public Item(String title, int price) {
this.title = title;
this.price = price;
}
}
[service] -
package com.sparta.springresttemplateserver.service;
import com.sparta.springresttemplateserver.dto.ItemResponseDto;
import com.sparta.springresttemplateserver.dto.UserRequestDto;
import com.sparta.springresttemplateserver.entity.Item;
import org.springframework.stereotype.Service;
import java.util.Arrays;
import java.util.List;
@Service
public class ItemService {
private final List<Item> itemList = Arrays.asList(
new Item("Mac", 3_888_000),
new Item("iPad", 1_230_000),
new Item("iPhone", 1_550_000),
new Item("Watch", 450_000),
new Item("AirPods", 350_000)
);
public Item getCallObject(String query) {
for (Item item : itemList) {
if(item.getTitle().equals(query)) {
return item;
}
}
return null;
}
public ItemResponseDto getCallList() {
ItemResponseDto responseDto = new ItemResponseDto();
for (Item item : itemList) {
responseDto.setItems(item);
}
return responseDto;
}
public Item postCall(String query, UserRequestDto requestDto) {
return null;
}
public ItemResponseDto exchangeCall(String token, UserRequestDto requestDto) {
return null;
}
}
Server의 역할
1. Controller를 통해 요청을 받는다.
@GetMapping("/get-call-obj")
public Item getCallObject(@RequestParam String query) {
return itemService.getCallObject(query);
}
@GetMapping("/get-call-list")
public ItemResponseDto getCallList() {
return itemService.getCallList();
}
2. 해당 String query 값에 맞는 Item을 반환한다.
public Item getCallObject(String query) {
for (Item item : itemList) {
if(item.getTitle().equals(query)) {
return item;
}
}
return null;
}
요청이 들어오면 모든 itemList를 ItemResponseDto 클래스 타입의 객체 내에 멤버변수인
private final List<Item> items = new ArrayList<>();
items에 set한 후에 객체를 반환한다.
public ItemResponseDto getCallList() {
ItemResponseDto responseDto = new ItemResponseDto();
for (Item item : itemList) {
responseDto.setItems(item);
}
return responseDto;
}
'내배캠 주요 학습 > Spring 숙련' 카테고리의 다른 글
Client 서버에서 네이버 검색 API 활용 (0) | 2023.06.20 |
---|---|
RestTemplate - Post 방식 : Client, Server 코드 설명 (0) | 2023.06.20 |
RestTemplate - get방식 : Client 서버 코드 설명 (0) | 2023.06.20 |
Validation, 회원가입 데이터에 적용하기 (0) | 2023.06.20 |
중요한 Validation, 예외처리 (0) | 2023.06.20 |