default String getOperationUri(Context<T> context, OperationShape operation) {
        return operation.getTrait(HttpTrait.class)
                .map(HttpTrait::getUri)
                .map(UriPattern::toString)
                .orElseThrow(() -> new OpenApiException(
                        "The `" + operation.getId() + "` operation has no `http` binding trait, which is "
                                + "required to compute a URI (using the default protocol implementation)"));
    }
Gets the URI of an operation.

<p>The default implementation will attempt to get the HTTP URI
defined by the {@link HttpTrait} trait. If no HTTP trait can be
found, the default implementation will throw an exception.

@param context The build context.
@param operation The operation to get the URI of.
@return Returns the operation URI.
smithy-openapi/src/main/java/software/amazon/smithy/openapi/fromsmithy/OpenApiProtocol.java