mirror of https://github.com/grpc/grpc-web.git
Adding some docs on interceptors. (#1370)
This commit is contained in:
parent
3cd7e0d434
commit
49d3b70868
23
README.md
23
README.md
|
|
@ -104,8 +104,8 @@ typings file will also be generated for the protobuf messages and service stub.
|
|||
in TypeScript. See **TypeScript Support** below for information on how to
|
||||
generate TypeScript files.
|
||||
|
||||
**Note: The `commonjs+dts` and `typescript` styles are only supported by
|
||||
`--grpc-web_out=import_style=...`, not by `--js_out=import_style=...`.**
|
||||
> **Note:** The `commonjs+dts` and `typescript` styles are only supported by
|
||||
`--grpc-web_out=import_style=...`, not by `--js_out=import_style=...`.
|
||||
|
||||
### Wire Format Mode
|
||||
|
||||
|
|
@ -294,9 +294,14 @@ call.on('status', (status: grpcWeb.Status) => {
|
|||
|
||||
### (Option) Using Promises (Limited features)
|
||||
|
||||
NOTE: It is not possible to access the `.on(...)` callbacks (e.g. for `metadata` and `status`) when Promise is used.
|
||||
> **NOTE:** It is not possible to access the `.on(...)` callbacks (e.g. for `metadata` and `status`) when Promise is used.
|
||||
|
||||
```ts
|
||||
// Create a Promise client instead
|
||||
const echoService = new EchoServicePromiseClient('http://localhost:8080', null, null);
|
||||
|
||||
... (same as above)
|
||||
|
||||
this.echoService.echo(request, {'custom-header-1': 'value1'})
|
||||
.then((response: EchoResponse) => {
|
||||
console.log(`Received response: ${response.getMessage()}`);
|
||||
|
|
@ -308,6 +313,18 @@ this.echoService.echo(request, {'custom-header-1': 'value1'})
|
|||
For the full TypeScript example, see
|
||||
[ts-example/client.ts](net/grpc/gateway/examples/echo/ts-example/client.ts) with the [instructions](net/grpc/gateway/examples/echo/ts-example) to run.
|
||||
|
||||
## Custom Interceptors
|
||||
|
||||
Custom interceptors can be implemented and chained, which could be useful for features like auth, retries, etc.
|
||||
|
||||
There are 2 types of interceptors ([interfaces](https://github.com/grpc/grpc-web/blob/3cd7e0d43493d4694fed78400e4ad78031d70c09/packages/grpc-web/index.d.ts#L55-L65)):
|
||||
|
||||
- `UnaryInterceptor` ([doc](https://grpc.io/blog/grpc-web-interceptor/#stream-interceptor-example), [example](https://github.com/grpc/grpc-web/blob/master/packages/grpc-web/test/tsc-tests/client04.ts)) - Intercept Unary RPCs; can only be used with Promise clients.
|
||||
- `StreamInterceptor` ([doc](https://grpc.io/blog/grpc-web-interceptor/#stream-interceptor-example), [example](https://github.com/grpc/grpc-web/blob/master/packages/grpc-web/test/tsc-tests/client03.ts)) - More versatile; can be used with regular clients.
|
||||
|
||||
For more details, see [this blog post](https://grpc.io/blog/grpc-web-interceptor/).
|
||||
|
||||
|
||||
## Ecosystem
|
||||
|
||||
### Proxy Interoperability
|
||||
|
|
|
|||
Loading…
Reference in New Issue