Documentation
¶
Index ¶
Constants ¶
View Source
const ( // ResponseContractSuccess identifies a successful response. ResponseContractSuccess ResponseContractCaseKind = "success" // ResponseContractError identifies a service error. ResponseContractError ResponseContractCaseKind = "error" // ResponseContractMissingEndpoint indicates that no endpoint was supplied. ResponseContractMissingEndpoint ResponseContractLimitationCode = "missing_endpoint" // ResponseContractMissingIdentity indicates that service or method identity is unavailable. ResponseContractMissingIdentity ResponseContractLimitationCode = "missing_identity" // ResponseContractMissingResponse indicates that response metadata is unavailable. ResponseContractMissingResponse ResponseContractLimitationCode = "missing_response" // ResponseContractStreaming indicates an unsupported stream lifecycle. ResponseContractStreaming ResponseContractLimitationCode = "streaming" )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Endpoint ¶
type Endpoint struct {
Name string
Description string
Method *expr.MethodExpr
Service *Service
Requirements []*expr.SecurityExpr
Request *Request
Response *Response
Errors []*Error
Stream *Stream
}
func BuildEndpoint ¶
func BuildEndpoint(service *Service, endpoint *expr.GRPCEndpointExpr) *Endpoint
type Request ¶
type Request struct {
Payload *expr.AttributeExpr
Message *expr.AttributeExpr
ProtoMessage *expr.AttributeExpr
StreamingPayload *expr.AttributeExpr
StreamingMessage *expr.AttributeExpr
ProtoStreamingInput *expr.AttributeExpr
// ProtoStreamEnvelope is the synthesized envelope message that
// carries both the one-shot payload and streaming payload items
// through a single gRPC stream when a method declares both
// Payload(...) and StreamingPayload(...).
ProtoStreamEnvelope *expr.AttributeExpr
Metadata *expr.MappedAttributeExpr
}
type Response ¶
type Response struct {
Result *expr.AttributeExpr
Message *expr.AttributeExpr
ProtoMessage *expr.AttributeExpr
StatusCode int
Description string
Headers *expr.MappedAttributeExpr
Trailers *expr.MappedAttributeExpr
}
type ResponseContractAnalysis ¶ added in v1.8.0
type ResponseContractAnalysis struct {
// Cases lists response branches in design order.
Cases []*ResponseContractCase
// Limitations explains why cases could not be produced.
Limitations []ResponseContractLimitation
}
ResponseContractAnalysis contains supported cases or explicit limitations.
func AnalyzeResponseContractCases ¶ added in v1.8.0
func AnalyzeResponseContractCases(endpoint *Endpoint) *ResponseContractAnalysis
AnalyzeResponseContractCases builds deterministic gRPC response cases.
func (*ResponseContractAnalysis) Supported ¶ added in v1.8.0
func (a *ResponseContractAnalysis) Supported() bool
Supported reports whether cases were produced without limitations.
type ResponseContractCase ¶ added in v1.8.0
type ResponseContractCase struct {
// ID is stable while the service contract is unchanged.
ID string
// Kind identifies a successful result or service error.
Kind ResponseContractCaseKind
// StatusCode is the declared gRPC status code.
StatusCode int
// MessageType is the protobuf response message name.
MessageType string
// ErrorName is the declared service error name.
ErrorName string
// DetailType is the protobuf status detail message name.
DetailType string
// RequiredHeaders lists required response metadata keys.
RequiredHeaders []string
// RequiredTrailers lists required trailer metadata keys.
RequiredTrailers []string
// Stream describes a supported streaming completion.
Stream *ResponseContractStream
}
ResponseContractCase describes one declared gRPC response branch.
type ResponseContractCaseKind ¶ added in v1.8.0
type ResponseContractCaseKind string
ResponseContractCaseKind identifies a successful result or service error.
type ResponseContractLimitation ¶ added in v1.8.0
type ResponseContractLimitation struct {
// Code identifies the unsupported feature.
Code ResponseContractLimitationCode
// Detail explains the limitation.
Detail string
}
ResponseContractLimitation explains an unsupported endpoint shape.
type ResponseContractLimitationCode ¶ added in v1.8.0
type ResponseContractLimitationCode string
ResponseContractLimitationCode identifies an unsupported endpoint shape.
type ResponseContractStream ¶ added in v1.8.0
type ResponseContractStream struct {
// Direction is the designed stream direction.
Direction string
// Terminal identifies the expected completion behavior.
Terminal string
}
ResponseContractStream describes a selected gRPC stream completion.
type Service ¶
type Service struct {
Name string
Description string
Expr *expr.GRPCServiceExpr
Endpoints []*Endpoint
}
func BuildService ¶
func BuildService(svc *expr.GRPCServiceExpr) *Service
Click to show internal directories.
Click to hide internal directories.