Protobuf 3은 효율적인 데이터 직렬화 형식이지만 사용 중에 특정 필드를 필수로 설정해야 하는 경우가 있습니다. 그렇다면 Protobuf 3 필드를 필수로 만드는 방법은 무엇일까요? 이 기사에서는 PHP 편집자 Strawberry가 Protobuf 3의 기능을 사용하여 필수 필드를 구현하는 방법을 자세히 소개하고 해당 코드 예제를 제공합니다. 초보자이든 숙련된 개발자이든 이 문서는 필수 필드의 사용법을 빠르게 익히고 코드의 견고성과 안정성을 향상시키는 데 도움이 될 수 있습니다. 한 번 보자!
grpc/proto-buffers를 사용하여 golang에서 첫 번째 API 엔드포인트를 작성하고 있습니다. 나는 갈 아주 새로운입니다. 아래는 제가 테스트 케이스로 작성한 파일입니다
으아악위에 v1.go
文件中定义 endpointrequest
개체가 포함되는 방식은 다음과 같습니다.
위의 테스트 사례는 제대로 작동하는 것 같습니다.
매개변수를 효과적으로 만드는 유효성 검사 규칙을 설정a
成为强制参数,因为它要求 a
是一个至少包含 1 的字符串。因此,如果省略 a
하면 엔드포인트가 400을 반환합니다.
하지만 이제 c
或 b
端点返回 400。我怎样才能做到这一点?在 protobufs 3 中,他们删除了 required
키워드를 생략했는지 확인하고 싶습니다. 그렇다면 문자열이 아닌 매개변수가 전달되었는지 확인하고 그에 따라 반응하려면 어떻게 해야 합니까?
짧은 버전: 할 수 없습니다.
required
은 주로 변경 사항이 이전 버전과 호환되지 않기 때문에 제거되었습니다. 유효성 검사 옵션을 사용하여 이를 다시 구현하려는 시도는 그다지 과감하지는 않지만(변경이 더 쉬움) 보시다시피 단점이 있습니다.
대신 프로토타입 정의 외부에서 유효성 검사를 유지하고 이를 애플리케이션 자체로 이동하세요. 메시지를 받을 때마다 내용을 확인해야 합니다(required
出现时也是如此)。在极少数情况下,由 options 或 required
가 나타날 때도 마찬가지입니다). 드문 경우지만 옵션이나
위 내용은 Protobuf 3 필드를 필수로 만드는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!