2017-10-21 1 views
2

스키마 레지스트리에 AVRO 스키마를 등록하려고합니다. 스키마는 레코드와 일부 필드를 포함합니다. 나는 Schema Registry REST API에 JSON으로 스키마를 게시하고 JSON이 잘 보이지만 서버는 curl : {"error_code":42201,"message":"Input schema is an invalid Avro schema"}을 리턴한다.AVRO 스키마의 JSON이 유효하지만 Kafka 스키마 레지스트리에서 무효를 반환합니다.

누군가 좀 봐 주시겠습니까?

Powershell은 JSON으로 스키마를 생성하는 데 사용됩니다.

$type = @{namespace="customer-actions"; name="customer-enrollment"; 
      type="record"; 
      [email protected]{name="id"; type="int"}, 
       @{name="name"; type="string"}} 
$typeJ = ConvertTo-Json $type -Depth 3 -Compress 

$schema = @{schema = "$typeJ" } 
$schemaJ = ConvertTo-Json $schema -Compress 

이는 ... 다음을 생산

정말 나쁜 보이는
{"schema":"{\"type\":\"record\",\"namespace\":\"customer-actions\",\"name\":\"customer-enrollment\",\"fields\":[{\"name\":\"id\",\"type\":\"int\ 
"},{\"name\":\"name\",\"type\":\"string\"}]}"} 

; 그 이스케이프 된 따옴표는 모두 필요합니다. 동일한 이스케이프 문자가 문제없이 더 간단한 스키마와 함께 사용됩니다.

미리 감사드립니다.

[편집] 스키마 레지스트리 API에 대한 호출이 도움이된다면

curl -Uri http://server:8081/subjects/customer-enrollment/versions ` 
    -Method Post ` 
    -ContentType "application/vnd.schemaregistry.v1+json" ` 
    -Body $schemaJ 

답변

3

문제는 한 - 이름 고객 등록

$type = @{namespace="customer-actions"; name="enrollment"; 
      type="record"; 
      [email protected]{name="id"; type="int"}, 
       @{name="name"; type="string"}} 
$typeJ = ConvertTo-Json $type -Depth 3 -Compress 

$schema = @{schema = "$typeJ" } 
$schemaJ = ConvertTo-Json $schema -Compress 

에서 문자 당신을위한 기간이 있습니까 공개 포럼에 질문을 올린 직후 답변을 찾으십시오.

+0

여기에 [AVRO 스키마 검사기] (https://json-schema-validator.herokuapp.com/avro.jsp) –

+2

[Rubber Duck Debugging] (https : //en.wikipedia.org/wiki/Rubber_duck_debugging) –

+0

@LucianoAfranllie 맞아! –

관련 문제