Metadata api 관련 질문입니다

Metadata api의 Asset 업로드 관련하여 Header 3가지(x-chain-id, Authorization, Content-Type)은 다 작성하였고 form-data를 눌러서 Key와 Value에 여러 시도를 해보았는데 key에 file을 쓰지 않으면 key name을 확인하라고 하는 것을 보아 key name은 file일 것 같다고 생각을 하고 있습니다. 만약에 맞다면 value에는 어떤 형식으로 file을 추가 해야 하는지 궁금합니다.

안녕하세요. 클레이튼 포럼에 질문을 올려주셔서 감사드립니다.

  1. 말씀해주신대로 key로는 file을 입력해주시는게 맞습니다.
  2. 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 예시 하나만 부탁드립니다 ㅠㅠ

https://velog.io/@higod1000/Java-외부-라이브러리-없이-Multipart-Formdata-전송하기

해당 블로그글 참고하시기 바랍니다.

감사합니다 :slight_smile: