Declares an API Interface to be included in this interface. The including
interface must redeclare all the methods from the included interface, but
documentation and options are inherited as follows:
- If after comment and whitespace stripping, the documentation
string of the redeclared method is empty, it will be inherited
from the original method.
- Each annotation belonging to the service config (http,
visibility) which is not set in the redeclared method will be
inherited.
- If an http annotation is inherited, the path pattern will be
modified as follows. Any version prefix will be replaced by the
version of the including interface plus the [root][] path if
specified.
Example of a simple mixin:
package google.acl.v1;
service AccessControl {
// Get the underlying ACL object.
rpc GetAcl(GetAclRequest) returns (Acl) {
option (google.api.http).get = "/v1/{resource=**}:getAcl";
}
}
package google.storage.v2;
service Storage {
rpc GetAcl(GetAclRequest) returns (Acl);
// Get a data record.
rpc GetData(GetDataRequest) returns (Data) {
option (google.api.http).get = "/v2/{resource=**}";
}
}
Example of a mixin configuration:
apis:
- name: google.storage.v2.Storage
mixins:
- name: google.acl.v1.AccessControl
The mixin construct implies that all methods in `AccessControl` are
also declared with same name and request/response types in
`Storage`. A documentation generator or annotation processor will
see the effective `Storage.GetAcl` method after inherting
documentation and annotations as follows:
service Storage {
// Get the underlying ACL object.
rpc GetAcl(GetAclRequest) returns (Acl) {
option (google.api.http).get = "/v2/{resource=**}:getAcl";
}
...
}
Note how the version in the path pattern changed from `v1` to `v2`.
If the `root` field in the mixin is specified, it should be a
relative path under which inherited HTTP paths are placed. Example:
apis:
- name: google.storage.v2.Storage
mixins:
- name: google.acl.v1.AccessControl
root: acls
This implies the following inherited HTTP annotation:
service Storage {
// Get the underlying ACL object.
rpc GetAcl(GetAclRequest) returns (Acl) {
option (google.api.http).get = "/v2/acls/{resource=**}:getAcl";
}
...
}
Protobuf type google.protobuf.Mixin
| Modifier and Type | Class and Description |
|---|---|
| public static class | Mixin.Builder
Declares an API Interface to be included in this interface. |
| Modifier and Type | Field and Description |
|---|---|
| private static final Mixin | |
| private byte | |
| private volatile Object | |
| public static final int | |
| private static final Parser | |
| private volatile Object | |
| public static final int | |
| private static final long |
| Access | Constructor and Description |
|---|---|
| private | |
| private | |
| private |
| Modifier and Type | Method and Description |
|---|---|
| public boolean | equals(final Object
object to be compared for equality with this message obj)Overrides com. Implements com. |
| public static Mixin | |
| public Mixin | getDefaultInstanceForType()
Implements com. |
| public static final Descriptors. | |
| public String | getName()
Implements com. The fully qualified name of the interface which is included. |
| public ByteString | getNameBytes()
Implements com. The fully qualified name of the interface which is included. |
| public Parser | getParserForType()
Overrides com. Implements com. |
| public String | getRoot()
Implements com. If non-empty specifies a path under which inherited HTTP paths are rooted. |
| public ByteString | getRootBytes()
Implements com. If non-empty specifies a path under which inherited HTTP paths are rooted. |
| public int | getSerializedSize()
Overrides com. Implements com. |
| public final UnknownFieldSet | getUnknownFields()
Overrides com. Implements com. UnknownFieldSet for this message.
|
| public int | hashCode()
Overrides com. Implements com. |
| protected GeneratedMessageV3. | internalGetFieldAccessorTable()
Implements abstract com. |
| public final boolean | isInitialized()
Overrides com. Implements com. |
| public static Mixin. | |
| public static Mixin. | |
| public Mixin. | newBuilderForType()
Implements com. |
| protected Mixin. | newBuilderForType(GeneratedMessageV3.
Implements abstract com. |
| public static Mixin | |
| public static Mixin | |
| public static Mixin | |
| public static Mixin | |
| public static Mixin | |
| public static Mixin | |
| public static Mixin | |
| public static Mixin | |
| public static Mixin | |
| public static Mixin | |
| public static Mixin | |
| public static Mixin | |
| public static Parser | |
| public Mixin. | toBuilder()
Implements com. |
| public void | writeTo(CodedOutputStream output)
Overrides com. Implements com. output.
|