Commit Graph

34 Commits

Author SHA1 Message Date
Yongguang Zhu 1253cbdf71
Includes a gRPC sample (#382)
* add GrpcSample, GrpcClient; update DaprClient

* disable TLS for grpc server

* implement deposit and withdraw method for grpcsample

* implement event handler for deposit and withdraw

* edit readme for grpcsample

* improve readme

* fix @amanbha requested changes

* fix or improve readme @vinayada1 reviewed

* use parameter in DaprClient to switch invocation of routing or grpcsample service

* add separate editorconfig file into samples directory

* add license header into grpcsample

* fix TypeConverters  to use internal access modifier; remove useless code; fix Console to logger; fix typo; fix using statement location

* throw a exception when account is not found for BankingService Withdraw invocation

* remove TypeConverters dependence

* use config for rpc-exception argument

* fix comment of @vinayada1

* updated documentation for parameters usage

* fix additional comments from @vinayada1

* Update Readme.md

* fix DaprClient's compile error

Co-authored-by: Yongguang Zhu <Yongguang.Zhu@microsoft.com>
Co-authored-by: vinayada1 <28875764+vinayada1@users.noreply.github.com>
Co-authored-by: Ryan Nowak <nowakra@gmail.com>
2020-12-02 17:52:43 -08:00
Ryan Nowak 116d984b4e
Rename and cleanup of HTTPExtension (#488)
* Rename and cleanup of HTTPExtension

Fixes: #421

This change renames `HTTPExtension`->`HttpInvocationOptions`. This is more
idiomatic in .NET and reflects existing naming conventions (options or
settings for parameters).

Also changes to use the `System.Net.Http.HttpMethod` type for the http
method, and globally prefer the term `method` over `verb`. Every .NET
API that I'm aware of uses 'method', as does rfc7231.

* One more rename
2020-11-30 12:11:44 -08:00
vinayada1 80f2319fe4
Handle rpc exception thrown for operation cancellation (#455)
* Handle cancelled cancellation token

* add UTs

* add secrets UT

* fix review comments

* invoke and await in one call

* fix await

* Add test for multiple calls to UseActors (#459)

Fixes: #411

The bug was actually addressed in PR #453 - this change adds a test that
verifies that we actually fixed it.

Co-authored-by: vinayada1 <28875764+vinayada1@users.noreply.github.com>

* use grpcChannelOptions ThrowOperationCanceledOnCancellation

* Add doc

* add link to doc

Co-authored-by: Ryan Nowak <nowakra@gmail.com>
2020-11-19 11:22:33 -08:00
Dasith Wijesiriwardena f6f434d6e6
Fluent methods for creating and manipulating HTTPExtension (#473)
* HTTPExtension fluent methods

* add tests

Co-authored-by: vinayada1 <28875764+vinayada1@users.noreply.github.com>
2020-11-17 12:58:02 -08:00
vinayada1 4c926c9469
Rich error model (#432)
* add InvokeMethodRawAsync and InvokeMethodWithResponseAsync
Co-authored-by: Ryan Nowak <nowakra@gmail.com>
2020-10-30 13:59:33 -07:00
Ryan Nowak aa682eb462
Remove async void in tests (#447)
Fixes: #446

`async void` is almost always a bug in server-side programming. If these
tests were doing any networking then they would encounter concurrency
bugs or crash in the event of an exception.

Co-authored-by: vinayada1 <28875764+vinayada1@users.noreply.github.com>
2020-10-29 15:54:17 -07:00
Charlie Stanley ab3f45e7e1 Added codecov integration (#436) 2020-10-19 19:06:21 -07:00
Young Bu Park 3bb6165096
Upgrade grpc to 2.32.0 (#413) 2020-10-07 10:35:57 -07:00
Sander Molenkamp 100dbe9794
Send headers as metadata to sidecar (#397)
* Send headers as metadata to sidecar

* Add HTTP headers test

* Allow different kinds of dictionaries
2020-09-24 16:07:44 -07:00
vinayada1 e93357cb9d
State Transaction API changes (#385)
* State Transaction API changes
* Add the optional fields as per API reference
* Fix review comments
* Added transactional state api to sample
2020-09-17 16:12:50 -07:00
Leon Mai 11f6ea45e1
Multi pubsub (#374)
* Prepping for multi pubsub

* Add pubsub name, some cleanup

* multi pubsub changes

Co-authored-by: Aman Bhardwaj <amanbha@microsoft.com>
Co-authored-by: LM <lemai>
2020-08-17 13:58:50 -07:00
Yaron Schneider 6671ab020c
Add bulk get to client (#372)
* Add bulk get to client

* change params, return type, class to struct

* change IList to IReadOnlyList, make parallelism nullable

* change GetBulkItem to BulkStateItem
2020-08-17 09:24:35 -07:00
Aman Bhardwaj 1cd4500a2d
Adding support for DAPR_API_TOKEN (#359)
* Adding support for DAPR_API_TOKEN

* adding retry back for this PR
2020-08-04 15:15:18 -07:00
Aman Bhardwaj b6329539bc
Remove retry options from state apis. (#361)
* Removing retry options for state apis.

* getting latest proto from dapr/dapr
2020-08-04 14:32:16 -07:00
Christian Kaps fdf17b7dbb
Use protobuf packaging for the Any type (#358)
* Use protobuf packaging for the Any type

This pull request implements two converters which help with the type conversion between arbitrary types and the protobuf `Any` type. The C# protobuf library provides a mechanism to pack or unpack protobuf messages to `Any`. It provides the methods `Any.Pack` and `Any.Unpack` to serialize/deserialize messages based on `Google.Protobuf.IMessage`. For types that are not based on `Google.Protobuf.IMessage`, the existing JSON serialization/deserialization will be used.

I've also cleaned the existing codebase a little bit.

Fixes #268

* Fix suggested changes
2020-08-03 10:15:23 -07:00
Christian Kaps 5b246c8665
Include the appcallback.proto into the Dapr.Client package (#349)
* Include the appcallback.proto into the Dapr.Client package

To implement service invocation for a gRPC API, a user must implement the AppCallback service on the callee site. Currently this must be done by integrating the `appcallpack.proto` file as also the depending `common.proto` file into the gRPC service application. The `Dapr.Client` package contains already the same `common.proto` file to generate the client classes. This results in a CS0433 error, because the `Dapr.Client` package and the generated AppCallback service will contain a `Dapr.Client.Autogen.Grpc.v1` namespace with the exact same classes.

This pull requests integrates the `appcallpack.proto` into the client package. With this fix the user does not need to integrate the proto files by itself.

See: https://gitter.im/Dapr/community?at=5f14b7e98a9a0a08cbab5d53

* Remove specific names
2020-07-25 09:20:34 -07:00
Leon Mai 041a2d1255
Update to sdk for changes in proto for bidirectional binding in runtime (#320)
* Update proto for bidirectional binding in runtime

* move arg check

Co-authored-by: LM <lemai>
2020-06-03 11:10:08 -07:00
Sander Molenkamp f3b5c7db81
Update client to latest proto files (#315)
* Update client to latest proto files

* Update PublishEventApiTest.cs

Merge conflict.

Co-authored-by: Leon Mai <lemai@microsoft.com>
2020-05-29 10:35:53 -07:00
Leon Mai ad4095c308
pub/sub - rename refs to 'content' to 'data' (#318)
Co-authored-by: LM <lemai>
2020-05-28 21:09:51 -07:00
Leon Mai 465c960b79
httpextension should use post if not specified (#303)
* httpextension should use post if not specified

* make constant

Co-authored-by: LM <lemai>
2020-05-06 17:45:56 -07:00
Leon Mai 44ca6496d8
Move to new invoke proto, specify contenttype in response to the dapr… (#295)
* Move to new invoke proto, specify contenttype in response to the dapr/config message, clarify sample

* Update for additional proto changes

* cr

Co-authored-by: LM <lemai>
2020-04-30 11:47:29 -07:00
Aman Bhardwaj 51fc48fb74
Adding & enhancing client apis over gRPC (#244)
* adding IDAprClient interface

* Adding DaprClientBuilder and adding methods for Publish

* updating the method name for publish

* Adding unit tests for publishevent api

* Removing individual clients for publish

* Renaming base class to DaprClient and implementation calss to DparClientGrpc

* Moving State api to grpc and adding helpers to unittest grpc calls.

* More DaprClient logic

* metadata, etag, options, etc are optional

* Revert "metadata, etag, options, etc are optional"

This reverts commit ea5dc12c5d.

* Default params, 2 new Try- methods, overload refactor for InvokeMethodAsync

* Move some classes/enums to different files.  Documentation

* Code refactor and changing tests to use grpc

* Adding tests with state options

* Adding test for getting etag and state

* More refactoring and adding INvokeBinding test

* Fixing tests and tidying up things.

* Updating solutions for renamed project

* Updating projects for rename.

* Oneclient secret (#245)

* ADding Secret Apis

* Using Task for secret

* Format (#242)

* Updating samples.slm

* awaint the call to grpc in common method so that common error handling can be done there.

* Addressing review comments

* fixing test.sln

* updating prod.sln

* Addressing review comments from James.

* Add doc and example for method invocation on http app

* Updating arg validation.

* Updating example.

Co-authored-by: LM <lemai>
Co-authored-by: Carlos Mendible <cmendible@gmail.com>
2020-03-09 20:52:12 -07:00
Carlos Landeras 334766c28a
Pass serializer options to InvokeMethodAsync<TRequest,TResponse> #234 (#235)
* Pass serializer options to InvokeMethodAsync<TRequest,TResponse>

* Fix invoke method serializer options + tests

* Change assertion to already defined response object
2020-02-26 09:20:52 -08:00
Shalabh Mohan Shrivastava 5b8a426e7d
Add support in dotnet client sdk to support multi state store support (#207)
* Including state Store name in the APIs to support multi state store scenario in SDK

* correcting the typo in the comment.

* Respective Changes to the tests

* Changes in StateAttribute and Binder classes to support state store name

* Changes in StateEntryModelBinderTests

* StoreName changes in the Integration test app

* fixing build issues

* Fixing integration tests

* Addressing review comments.

* Addressing review comments

* Updating samples to use correct state store name as generated by dapr cli.

Co-authored-by: Aman Bhardwaj <amanbha@users.noreply.github.com>
2020-02-06 09:06:21 -08:00
Aman Bhardwaj a5078a60c7
Using 127.0.0.1 instead of localhost. (#214)
* Using 127.0.0.1 instead of localhost.

* Updating usage in tests and samples, docs as well.
2020-02-05 12:32:41 -08:00
James Eastham 9e7ce7ee1e
Add PublishHttpClient implementation (#186) (#200)
* Add PublishHttpClient implementation (#186)

* Update PublishHttpClient implementation (#186)

* Refactor AsyncJsonContent to seperate class (#186)
2020-02-05 12:03:34 -08:00
Ryan Nowak b02aa3f02b Add support for delete operations (#198)
* Add support for delete operations

* Removing extra spaces to fix build break.

Co-authored-by: Aman Bhardwaj <amanbha@users.noreply.github.com>
2020-01-09 09:53:13 -08:00
Ryan Nowak c4f80f10b6 Fix URL generation when BaseAddress is used (#194)
Fixes: #192

We were missing tests for the case where the HttpClient has a
BaseAddress set. In these case we'd generate an incorrect URL.

Co-authored-by: Aman Bhardwaj <amanbha@users.noreply.github.com>
2020-01-08 11:41:45 -08:00
Aman Bhardwaj 34835a0224
Build for net core 3.1 (#189) 2019-12-16 09:31:25 -08:00
Aman Bhardwaj 9a499176bf Revert "Build for net core 3.1"
This reverts commit bead12b1d8.
2019-12-15 09:59:08 -08:00
Aman Bhardwaj bead12b1d8 Build for net core 3.1 2019-12-13 20:31:08 -08:00
James Eastham 5562d0d64b Issue 184 (#185)
* Add InvokeClient and InvokeHttpClient dapr #184

* Add tests for InvokeHttpClient dapr#184

* Update namespace of InvokeHttpClient  dapr#184

* Add DI of InvokeHttpClient dapr#184

* Resolve code format issues dapr#184

* Remove InvokeEnvelope and add params to InvokeMethod dapr#184

* Update method signature to use generic types for Request/Response dapr#184

* Update parameter in data null check dapr#184
2019-12-13 10:05:17 -08:00
Greg Ingram 07fa2c615d Moved to xunit for testing (#127)
* Updated Dapr.AspNetCore.IntegrationTest

* Updated Dapr.AspNetCore.Test

* Updated Dapr.Client.Test

* Updated to latest packages
2019-10-22 16:29:31 -07:00
Aman Bhardwaj 4fb29e44e3
Changing to Dapr.* (#89)
* Changing to Dapr.*

* Update readme.md

* keeping things signed
2019-10-11 13:42:30 -07:00