2013-10-31 7 views
-1

다른 사람들이 Google 서비스를 자체 시스템에 통합 할 수 있도록 API를 만들고 있습니다.API 응답이 충분합니까?

응답을 공식화하는 가장 좋은 방법을 찾는 것은 쉽지 않습니다. 다양한 방법으로 시도해 봤습니다. 여러 번 그것을 아주 저조한하고 자신과 다른 사람들이 그것을 사용하는 데 어려움이 있습니다.

내가 그것을 한 적이 방법입니다

<xml> 
    <HttpResponse>200</HttpResponse> 
    <data> 
     <report> 
      <id>200</id> 
      <date>07.03.2013 11:13:00</date> 
      <title>Fake report 1</title> 
      <content>Lorem ipsum dolor sit amet.</content> 
     </report> 
     <report> 
      <id>448</id> 
      <date>10.04.2013 12:13:34</date> 
      <title>Fake report 2</title> 
      <content>Lorem ipsum dolor sit amet.</content> 
     </report> 
     <report> 
      <id>927</id> 
      <date>25.10.2013 11:49:34</date> 
      <title>Fake report 3</title> 
      <content>Lorem ipsum dolor sit amet.</content> 
     </report> 
    </data> 
</xml> 

오류가있을 경우, 다음 HttpResponse에이를 시그널링 화 (signaling)하는 적절한 코드를 제공하고 데이터는 다음과 같이 오류의 descprition이 포함됩니다 :

<xml> 
    <HttpResponse>418</HttpResponse> 
    <data> 
     <error> 
      <code>AB43</code> /* <<-- this code says what I can search for in the code to find the exact process/line where it failed */ 
      <description>You are the one who messed up!!!</description> 
     </error> 
    </data> 
</xml> 

내 질문은 간단합니다 : 이 응답이 의미가 있습니까?

내가 고려하지 않은 시나리오가 있습니까?

사람들이 다음과 같은 응답에서 데이터를 가져 오는 데 문제가 있습니까?

어떻게해야합니까?

BTW : JSON을 사용하지 않겠습니다.

+3

오류 노드를 데이터 노드가 아닌 루트 수준으로 옮깁니다. 그래서 당신은 오류나 데이터를 얻습니다. 내 의견으로는 이해하고 확인하기가 더 쉽습니다. 그리고 JSON을 사용하려고합니다 .-) –

+0

@RotemHermon JSON은 자세한면에 대해 충분히 이해합니다. 궁극적으로, 두 기술 모두 매우 유사한 목표를 위해 설계되었습니다. 기능상의 차이는 거의 없습니다. – Gusdor

+1

코드 및 설명 외에도 "인덱스가 범위를 벗어남"과 같이 오류의 이름을 추가합니다.이 인덱스는 상수이며 문자열이 같은지 검사 할 수 있습니다. 그런 다음 설명에서 변경할 수있는 세부 정보를 추가합니다. 문자열 비교가 불가능한 세부 정보를 추가하십시오. "허용되는 최대 색인은 35이지만, 제공된 색인은 37"입니다. 이렇게하면 최종적으로 오류를 처리해야하는 코드가 읽고 쓰는 것이 훨씬 쉬워집니다. –

답변

0

의견을 기반으로 오류를 표시하는 새로운 방법입니다.

여러 오류가 발생할 가능성이 있기 때문에 이동 오류가 발생하지 않도록하고 "데이터"를 바꾸지 마십시오. 대신 "데이터"를 "오류"로 변경했습니다.

<xml> 
    <HttpResponse>418</HttpResponse> 
    <errors> 
     <error> 
      <code>AB43</code> 
      <title>document_title_too_long</title> 
      <description>The title is limited to 64 characters, yours was 73. </description> 
     </error> 
     <error> 
      <code>AC85</code> 
      <title>document_no_category</title> 
      <description>You must select a category to save the document. </description> 
     </error> 
    </errors> 
</xml>