파일 및 관련 데이터를 JSON 형식으로 RESTful WebService에 게시합니다.
P粉056618053
2023-08-20 13:47:10
<p>제가 개발 중인 애플리케이션에서는 클라이언트가 JSON 형식으로 데이터를 보내길 원하므로 RESTful API를 개발 중입니다. 애플리케이션의 일부에서는 클라이언트가 이미지에 대한 정보와 함께 파일(일반적으로 이미지)을 업로드해야 합니다. </p>
<p>단일 요청으로 이 작업을 수행하는 방법을 추적하는 데 문제가 있습니다. Base64로 파일 데이터를 JSON 문자열로 인코딩할 수 있나요? 서버에 대해 두 개의 POST 요청을 수행해야 합니까? 이 문제를 처리하기 위해 JSON을 사용하면 안 되나요? </p>
<p>또한 우리는 백엔드에서 Grails를 사용하며 해당 정보가 다른 경우 기본 모바일 클라이언트(iPhone, Android 등)에서 이러한 서비스에 액세스할 수 있습니다. </p>
multipart/form-data 콘텐츠 유형을 사용하여 한 번의 요청으로 파일과 데이터를 보낼 수 있습니다.
출처: http://www.faqs.org/rfcs/rfc2388.html:
각 경계 사이의 각 섹션에 파일 정보나 필드 정보를 포함할 수 있습니다. 사용자가 데이터와 양식을 제출해야 하는 RESTful 서비스를 성공적으로 구현했으며 multipart/form-data가 완벽하게 작동합니다. 서비스는 Java/Spring을 사용하여 구축되었으며 클라이언트는 C#을 사용하므로 안타깝게도 서비스 설정 방법을 알려줄 Grails 예제가 없습니다. 이 경우 각 "form-data" 섹션에서 매개변수 이름과 해당 값을 지정할 수 있는 위치를 제공하므로 JSON을 사용할 필요가 없습니다.
multipart/form-data 사용의 장점은 HTTP에서 정의한 헤더를 사용하므로 기존 HTTP 도구를 사용하여 서비스를 생성한다는 REST 철학을 따른다는 것입니다.
여기서 비슷한 질문을 했습니다:
REST 웹 서비스를 사용하여 메타데이터가 포함된 파일을 업로드하는 방법은 무엇입니까?
기본적으로 세 가지 옵션이 있습니다:
multipart/form-data
로 보내고 ID를 클라이언트에 반환합니다. 그런 다음 클라이언트는 해당 ID를 사용하여 메타데이터를 보내고 서버는 파일과 메타데이터를 다시 연결합니다.