>백엔드 개발 >PHP 튜토리얼 >인터페이스 작성 문제

인터페이스 작성 문제

WBOY
WBOY원래의
2016-12-01 00:25:191314검색

내 인터페이스는 다음과 같습니다. 반환이 있는 경우에만 json의 데이터에 값이 있고, 그렇지 않으면 빈 문자열이 됩니다.
인터페이스 작성 문제

인터페이스 작성 문제

동료가 데이터를 받았을 때 json을 사용하여 데이터를 객체로 변환했는데, 데이터가 비어 있으면 전체 프로그램이 폭발하거나 내 데이터가 반환할 수 없는 null을 반환한다고 말했습니다. 정말 이해가 안 가네요.
인터페이스 작성 문제

답글 내용:

내 인터페이스는 다음과 같습니다. 반환이 있는 경우에만 json의 데이터에 값이 있고, 그렇지 않으면 빈 문자열이 됩니다.
인터페이스 작성 문제

인터페이스 작성 문제

동료가 데이터를 받았을 때 json을 사용하여 데이터를 객체로 변환했는데, 데이터가 비어 있으면 전체 프로그램이 폭발하거나 내 데이터가 반환할 수 없는 null을 반환한다고 말했습니다. 정말 이해가 안 가네요.
인터페이스 작성 문제

그렇습니다. 원본 데이터가 배열이 되면 처리하지 않고 중단됩니다. $info['data'] = new stdClass();//返回空对象
서버로서 필드 유형에 민감하게 처리해야 한다고 생각합니다.

코드값을 판단할 필요는 없나요?

동료가 프레임워크를 사용하여 json을 구문 분석했습니까? 수동으로 구문 분석하도록 요청하세요. 프레임을 사용하지 마십시오.
그렇지 않으면 프레임워크는 데이터의 []가 빈 개체인지 확인할 수 없습니다.
물론 파싱하기 전에 코드의 값을 확인할 수도 있습니다.

클라이언트 코드를 제대로 작성하지 않으면 이런 일이 실제로 발생합니다. 그 항아리가 당신에게 던져졌습니다. 당신이 그 사람보다 낫다면 다시 던져 버리고, 그렇지 않으면 그 항아리를 가져가십시오. . .

일반적으로 클라이언트는 gson과 유사한 프레임워크를 사용하여 서버에서 반환된 json 데이터를 구문 분석하며 데이터 형식을 미리 정의해야 합니다. 데이터는 객체이므로 객체의 기본값인 null을 사용할 수 있습니다. 이 요구 사항은 매우 정상적이라고 생각합니다.

이건 누가 쉽게 바꿀 수 있느냐의 문제인 것 같아요~~
대체로 동료들이 주시는 편의라면 뭐든지 받아들이는 게 맞는 것 같아요. 그런 다음 직접 처리하십시오.
물론 구체적인 이슈를 자세히 분석해보겠습니다~~

코드의 가치를 판단하는 것이 더 낫다고 생각합니다

API로서 동일한 필드는 동일한 데이터 유형을 반환해야 합니다.
하지만 문제가 해결되면 코드를 사용할 수도 있습니다.
그래서 개발 중이라면 인터페이스를 변경하세요. 이미 온라인 상태라면 인터페이스를 변경하세요.

그래서 인터페이스 조인트 디버깅이 필요합니다

동료가 말한 것은 문제가 되지 않습니다. 각 필드의 데이터 유형이 항상 일관성이 있는지 확인하세요. 하하

앱 측의 작성은 충분히 엄격하지 않습니다. 먼저 상태 코드 코드를 결정합니다. 성공하면 계속해서 데이터를 구문 분석하고 실패하면 오류 코드 코드를 반환합니다.
서버 측의 약한 유형의 PHP로 인해 앱 측에서 각 데이터를 구문 분석합니다. 모든 유형에는 요구 사항이 있습니다. 즉, 반환되는 데이터 유형의 일관성을 확인하십시오. 비어 있지 않으면 반환된 json 문자열은 앱에서 객체로 구문 분석됩니다. 데이터가 비어 있으면 서버는 비어 있는지 확인하고, 비어 있으면 빈 객체를 할당합니다.

<code>$obj = new stdClass();</code>

PHP 측에서 먼저 변수를 정의해 보는 것은 어떨까요? ? $data=array()
또한 클라이언트는 무슨 일이 있어도 충돌이 발생하지 않도록 해야 합니다. 개발 과정에서 클라이언트가 오류를 반환하는지 확인하기 위해 클라이언트에 일부 오류 반환 값을 시뮬레이션하는 것이 좋습니다. 그럼 그 사람이 책임을 지도록 하세요. 하하, 농담이에요

<code class="php">$result = array(
    "code" => "2",
    "msg" => "",
    "data" => (Object)array()
);</code>

직접 쓰지 마세요

<code class="php">$result = array(
    "code" => "2",
    "msg" => "",
    "data" => array()
);</code>
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.