基於Dapr的Dotnet和Java間的服務調用

Java服務端[略]

請參考 Java基於Dapr的服務調用完成Java服務端的搭建

Dotnet客戶端

1.創建Dotnet Webapi項目
dotnet new webapi -n dotnet_client_demo --no-https true
2.添加Dapr的ASP.NET依賴,[控制檯項目只需要添加Client依賴就可以了]
cd dotnet_client_demo
dotnet add package Dapr.AspNetCore
3.容器中註冊
var builder = WebApplication.CreateBuilder(args);

// Add services to the container.
builder.Services.AddControllers().AddDapr();

// ...
4.控制器中使用
using Dapr.Client;
using Microsoft.AspNetCore.Mvc;

namespace dotnet_client_demo.Controllers;

[ApiController]
[Route("[controller]")]
public class ClientController : ControllerBase
{
    private readonly ILogger<ClientController> _logger;
    private readonly DaprClient _client;
    
    private static readonly string SERVICE_APP_ID = "server_demo";
    private static readonly string METHOD_NAME = "hello";
    
    public ClientController(ILogger<ClientController> logger,DaprClient client )
    {
        _logger = logger;
        _client = client;
    }

    [HttpGet("/say")]
    public async Task<string> say() {
        Dictionary<string,object> requestParams = new()
        {
            {"name","fanqi"}
        };
        Dictionary<string, object> response = 
            await _client.InvokeMethodAsync<Dictionary<string,object>,Dictionary<string,object>>(HttpMethod.Post, SERVICE_APP_ID, METHOD_NAME, requestParams);
        return response["data"].ToString();
    }
}
5.配置啓動端口

appsettings.json

{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft.AspNetCore": "Warning"
    }
  },
  "AllowedHosts": "*",
  "Urls": "http://*:9999"
}

若無法生效,請查看launchSettings.json是否對運行環境做了端口配置

6.新建啓動配置

image

image

dapr run --app-id dotnet_client_demo --app-port 9999 --dapr-http-port 9001 -- dotnet run bin/Debug/net7.0/dotnet_client_demo.dll
7.測試【略】
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章