From e92b4451bfca0cf209ea79a6eb77be77b82c47a2 Mon Sep 17 00:00:00 2001 From: maliming Date: Tue, 1 Nov 2022 18:20:43 +0800 Subject: [PATCH] Update `Static-CSharp-API-Clients.md`. Resolve #14503 --- docs/en/API/Static-CSharp-API-Clients.md | 50 ++++++++++++++++-- ...d-static-client-proxies-with-contracts.png | Bin 0 -> 21270 bytes ...tatic-client-proxies-without-contracts.png | Bin 0 -> 15730 bytes .../generated-static-client-proxies.png | Bin 7118 -> 0 bytes 4 files changed, 47 insertions(+), 3 deletions(-) create mode 100644 docs/en/images/generated-static-client-proxies-with-contracts.png create mode 100644 docs/en/images/generated-static-client-proxies-without-contracts.png delete mode 100644 docs/en/images/generated-static-client-proxies.png diff --git a/docs/en/API/Static-CSharp-API-Clients.md b/docs/en/API/Static-CSharp-API-Clients.md index a5996158b6..23d1866c98 100644 --- a/docs/en/API/Static-CSharp-API-Clients.md +++ b/docs/en/API/Static-CSharp-API-Clients.md @@ -36,6 +36,12 @@ public interface IBookAppService : IApplicationService Implement this class in your service application. You can use [auto API controller system](Auto-API-Controllers.md) to expose the service as a REST API endpoint. +## With Contracts or Without Contracts + +`Without Contracts` depending on target service's `application.contracts` package, so they can reuse the DTOs and other related classes. However, that can be a problem when we want to create fully independently developed and deployed microservices. We want to use the static proxy generation even without depending target service's application.contracts package. + +`With Contracts` generate all the `classes/enums/other` types in the client side (including application service interfaces) , This is also the default behavior of the `generate-proxy` command. + ## Client Proxy Generation First, add [Volo.Abp.Http.Client](https://www.nuget.org/packages/Volo.Abp.Http.Client) nuget package to your client project: @@ -53,7 +59,27 @@ public class MyClientAppModule : AbpModule } ```` -Now, it's ready to configure the application for the static client proxy generation. Example: +Now, it's ready to configure the application for the static client proxy generation. + +### With Contracts Example + +````csharp +[DependsOn( + typeof(AbpHttpClientModule) //used to create client proxies + )] +public class MyClientAppModule : AbpModule +{ + public override void ConfigureServices(ServiceConfigurationContext context) + { + // Prepare for static client proxy generation + context.Services.AddStaticHttpClientProxies( + typeof(MyClientAppModule).Assembly + ); + } +} +```` + +### Without Contracts Example ````csharp [DependsOn( @@ -98,6 +124,8 @@ Server side must be up and running while generating the client proxy code. So, r Open a command-line terminal in the root folder of your client project (`.csproj`) and type the following command: +#### With Contracts + ````bash abp generate-proxy -t csharp -u http://localhost:53929/ ```` @@ -106,9 +134,25 @@ abp generate-proxy -t csharp -u http://localhost:53929/ This command should generate the following files under the `ClientProxies` folder: -![generated-static-client-proxies](../images/generated-static-client-proxies.png) +![generated-static-client-proxies](../images/generated-static-client-proxies-with-contracts.png) + +* `BookProxy.Generated.cs` is the actual generated proxy class in this example. `BookClientProxy` is a `partial` class * where you can write your custom code (ABP won't override it). +* `IBookAppService.cs` is the app service. +* `BookDto.cs` is the Dto class which uses by app service. +* `app-generate-proxy.json` contains information about the remote HTTP endpoint, so ABP can properly perform HTTP requests. + +#### Without Contracts + +````bash +abp generate-proxy -t csharp -u http://localhost:53929/ --without-contracts +```` + +This command should generate the following files under the `ClientProxies` folder: + +![generated-static-client-proxies](../images/generated-static-client-proxies-without-contracts.png) -`BookClientProxy.Generated.cs` is the actual generated proxy class in this example. `BookClientProxy` is a `partial` class where you can write your custom code (ABP won't override it). `app-generate-proxy.json` contains information about the remote HTTP endpoint, so ABP can properly perform HTTP requests. +* `BookClientProxy.Generated.cs` is the actual generated proxy class in this example. `BookClientProxy` is a `partial` class where you can write your custom code (ABP won't override it). +* `app-generate-proxy.json` contains information about the remote HTTP endpoint, so ABP can properly perform HTTP requests. > `generate-proxy` command generates proxies for only the APIs you've defined in your application. If you are developing a modular application, you can specify the `-m` (or `--module`) parameter to specify the module you want to generate proxies. See the *generate-proxy* section in the [ABP CLI](../CLI.md) documentation for other options. diff --git a/docs/en/images/generated-static-client-proxies-with-contracts.png b/docs/en/images/generated-static-client-proxies-with-contracts.png new file mode 100644 index 0000000000000000000000000000000000000000..b170c970c83c2957afe9d5d4cf75fc9033129e60 GIT binary patch literal 21270 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 Dqi-Qr literal 0 HcmV?d00001 diff --git a/docs/en/images/generated-static-client-proxies-without-contracts.png b/docs/en/images/generated-static-client-proxies-without-contracts.png new file mode 100644 index 0000000000000000000000000000000000000000..25baa30a145e8abf324ea3f41b78a594a6faf4f6 GIT binary patch literal 15730 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%0A(T$S}VFj6CAKPS8X7AE)0B&03$m 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 literal 0 HcmV?d00001 diff --git a/docs/en/images/generated-static-client-proxies.png b/docs/en/images/generated-static-client-proxies.png deleted file mode 100644 index 4c1678aebd329b210673f4f247de5c00ac34417c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7118 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 Q