Metadata api의 Asset 업로드 관련하여 Header 3가지(x-chain-id, Authorization, Content-Type)은 다 작성하였고 form-data를 눌러서 Key와 Value에 여러 시도를 해보았는데 key에 file을 쓰지 않으면 key name을 확인하라고 하는 것을 보아 key name은 file일 것 같다고 생각을 하고 있습니다. 만약에 맞다면 value에는 어떤 형식으로 file을 추가 해야 하는지 궁금합니다.
안녕하세요. 클레이튼 포럼에 질문을 올려주셔서 감사드립니다.
- 말씀해주신대로 key로는 file을 입력해주시는게 맞습니다.
- value로는 파일이 첨부돼야 하는데요, value값에 특별한 형식이 있는 것은 아니고,
form에 올릴 파일이 입력돼야 합니다.
예시로 설명드리면 더 좋을 것 같은데요,
특정 디렉토리에 test.png가 있다고 가정하고, 해당 디렉토리에서
curl --location --request POST 'https://metadata-api.klaytnapi.com/v1/metadata/asset' \
--header 'x-chain-id: {chain-id}' \
--header 'Authorization: Basic {your authorization}' \
--form 'file=@"test.png"'
형태로 실행하면 됩니다.
만약 curl이 익숙하시지 않다면, postman과 같은 툴을 사용하시는 것을 추천드립니다!
Stoplight에서 실험을 해보고 싶은데 저는 Java의 NetHttp를 사용합니다.
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(“https://metadata-api.klaytnapi.com/v1/metadata/asset”))
.header(“x-chain-id”, “8217”)
.header(“Authorization”, “”)
.header(“Content-Type”, “multipart/form-data”)
.method(“POST”, HttpRequest.BodyPublishers.ofString(“file=???”))
.build();
HttpResponse response = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
???에 예시로 들자면 C:\Users\문서\Bandicam\test.mp4를 사용하면 될까요??
java의 NetHttp code generation 예시 하나만 부탁드립니다 ㅠㅠ