서버 컴퓨터에 파일저장하는 간단 RestAPI 서버 만들기 1

송민경's avatar
Aug 08, 2024
서버 컴퓨터에 파일저장하는 간단 RestAPI 서버 만들기 1

FileStorage 만들기

  • @Service : Spring의 서비스 컴포넌트로 등록
  • 저장 경로 : FILE_PATH(XML 파일이 저장될 경로를 정의)에 경로 설정
    • 폴더는 미리 만들어놔야 함
    • 파일은 미리 만들지 않아도 자동으로 생성됨
    • notion image
  • json 데이터로 받아서 xml 데이터로 저장하기
    • JSON (JavaScript Object Notation) : 간단하고 읽기 쉬운 데이터 교환 형식
      • 배열로 시작하여 각 객체는 중괄호 {}로 감싸져있음
      • 키-값 쌍으로 데이터가 표현
      • 문자열, 숫자, 배열, 객체 등 다양한 데이터 타입을 지원
      • [ { "id": 1, "name": "Item 1" }, { "id": 2, "name": "Item 2" } ]
    • XMLeXtensible Markup Language) : 데이터 구조를 정의하는 마크업 언어
      • 루트 태그(<items>)로 시작
      • 항목<item> 태그로 감싸져 있음
      • 내부에 <id><name> 태그가 포함
      • XML은 데이터의 계층 구조를 명확하게 표현
      • <items> <item> <id>1</id> <name>Item 1</name> </item> <item> <id>2</id> <name>Item 2</name> </item> </items>
  • 필요한 의존성
    • JSON 처리용 Jackson 라이브러리 : JSON 데이터를 객체로 변환하거나 객체를 JSON 문자열로 변환하는 데 사용
    • XML 처리용 Jackson 라이브러리 : XML 데이터를 객체로 변환하거나 객체를 XML로 변환하는 데 사용
    • // JSON 처리용 Jackson 라이브러리 implementation 'com.fasterxml.jackson.core:jackson-databind:2.15.2' // XML 처리용 Jackson 라이브러리 implementation 'com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.15.2'
 
package com.example.simpe_restapi._core; import com.example.simpe_restapi.item.Item; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.dataformat.xml.XmlMapper; import org.springframework.stereotype.Service; import java.io.File; import java.io.IOException; import java.util.List; @Service public class FileStorage { private static final String FILE_PATH = "data/items.xml"; private final ObjectMapper jsonMapper = new ObjectMapper(); private final XmlMapper xmlMapper = new XmlMapper(); // JSON 데이터를 XML로 저장 public void saveItemsAsXml(String jsonData) throws IOException { // JSON 데이터를 객체로 변환 List<Item> items = jsonMapper.readValue(jsonData, jsonMapper.getTypeFactory().constructCollectionType(List.class, Item.class)); // 객체를 XML로 변환하고 파일로 저장 xmlMapper.writeValue(new File(FILE_PATH), items); } // XML 파일에서 JSON 데이터 읽기 public String getItemsAsJson() throws IOException { // XML 파일에서 객체로 변환 List<Item> items = xmlMapper.readValue(new File(FILE_PATH), xmlMapper.getTypeFactory().constructCollectionType(List.class, Item.class)); // 객체를 JSON으로 포맷팅하여 변환 return jsonMapper.writerWithDefaultPrettyPrinter().writeValueAsString(items); } }
Share article

vosw1