기존 애플리케이션 위에 REST API를 생성하고 있습니다. 기능 중 하나는 사용자가 업로드 한 파일과 함께 json 데이터를 가져옵니다.REST API 같은 요청으로 API에 JSON 데이터와 파일을 전송하도록 디자인합니다.
REST API에 같은 요청으로 파일과 json 데이터를 보내는 방법을 확신하지 못합니까?
나는 json으로 부품 작업을하고 난 컬을 사용하는지 테스트 : 나는 Grails 애플리케이션을 사용하고
curl -XPOST http://localhost:8080/myapp/foo -d '{"mydata": {
"name": "somename",
"gender": "male"
}}'
//I would like to send an image (say, profile image) with the above request as well.
그래서 지금처럼 내 컨트롤러에이 데이터를 얻을 : new Foo(params.mydata)
을.
질문
- 그것은 API에 같은 요청에서 JSON 데이터와 파일을 보낼 수 있습니까? 그렇다면 컬 또는 REST Console (크롬 확장)을 사용하여 어떻게 할 수 있습니까?
- 이 요청의
contentType
은 무엇입니까? - 동일한 요청 내에서 파일 및 기타 데이터 (문자열)를 보낼 수 있다는 의미라면 다른 형식으로 데이터를 보낼 수 있습니다. 나는 업데이트 내가 같은 일을 요구하고있다 another SO question을 발견
JSON 에 묶여 있지 않다. the answer to that question에서 세 가지 선택 사항 만있는 것으로 보이며 동일한 요청 내에서 json 데이터와 파일을 모두 전송할 수 있다고는 말할 수 없습니다. 어느 것이 매우 낙심하고 있습니다 ... 나는이 질문을 열어 다른 사람이 있는지 확인합니다.
나는 혼란 스럽습니다. 당신의 대답은 고무적이지만, 제 질문과 같은 줄에있는 또 다른 질문을 발견했습니다. 단지 세 가지 선택 만 가능합니다. 어느 누구도 json 데이터와 파일을 동일한 요청으로 보낼 수 없다고 말합니다. http://stackoverflow.com/questions/4083702/posting-a-file-and-data-to-restful-webservice-as-json – birdy
I 당신이 게시 한 링크에서 옵션 3에 해당하는 금액을 제안하려고했습니다. 메타 데이터를 보내고, 서버가 URI로 응답하여 이미지를 게시하고 이미지를 해당 URI로 보냅니다. 그러나 multipart/mixed MIME 형식을 사용하면 정의한 "경계"에 상관없이 동일한 메시지에서 여러 콘텐츠 형식을 사용할 수 있습니다. 그러면 전체 내용 유형이 multipart/mixed가되고 다음 두 블록은 application/json, image/jpeg가됩니다. – David
좋아요,'multipart/mixed' 콘텐츠 타입을'application/json'과'image/jpeg' 두 블록으로 해봅시다. 잠깐, 두 번째 블록 인'image/jpeg'는 어떻게 작동할까요? 파일이 업로드됩니까? 그냥 REST Console Chrome 플러그인으로 테스트로이 요청을 보내는 방법을 알아 내려고합니다 :) – birdy