• Net Core 3.0 尝鲜指南


    1. swagger

    .Net Core 3.0中的swagger,必须引用5.0.0 及以上版本。可以在Nuget官网查看版本。目前最新版本(2019-9-25) 5.0.0rc3

    Install-Package Swashbuckle.AspNetCore.Swagger -Version 5.0.0-rc3
    Install-Package Swashbuckle.AspNetCore.SwaggerUi -Version 5.0.0-rc3
    
    1. 读取配置文件
      appsettings.json中定义json结构模块来映射到Model,免去了自己读取出来转实体的麻烦。但是呢,两边的名字必须是要一样的。
      具体参考:这里

    2. gRPC
      具体参考:这里

    也可看我的demo:这里

    public void ConfigureServices(IServiceCollection services)
    {
    	//添加grpc
    	services.AddGrpc();
    }
    
    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
    	if (env.IsDevelopment())
    	{
    		app.UseDeveloperExceptionPage();
    	}
    	app.UseRouting();
    	app.UseEndpoints(endpoints =>
    	{
    		//绑定mapping
    		endpoints.MapGrpcService<GreeterService>();
    		endpoints.MapGrpcService<FirstTestService>();
    		endpoints.MapGet("/", async context =>
    		{
    			await context.Response.WriteAsync("Communication with gRPC endpoints must be made through a gRPC client. To learn how to create a client, visit: https://go.microsoft.com/fwlink/?linkid=2086909");
    		});
    	});
    }
    

    first.proto:

    //指定使用pb3
    syntax = "proto3";
    
    option csharp_namespace = "Core3Study.GRpc";
    
    package First;
    
    // 定义服务
    service FirstTest {
    // Sends a greeting
    rpc GetCacheValue (Request) returns (Reply);
    }
    
    
    message Request {
    string key = 1;
    }
    
    
    message Reply {
    string value = 1;
    }
    

    service的命名:.proto中service的名字,比如:firstTest,则service名为 FirstTestService,继承FirstTest.FirstTestBase.
    都是自动生成的,前提是,需要在项目文件中添加

    <ItemGroup>
    	<Protobuf Include="Protosfirst.proto" GrpcServices="Server" />
    </ItemGroup>
    

    的引用。

    public override Task<Reply> GetCacheValue(Request request, ServerCallContext context)
    {
    	return Task.FromResult(new Reply()
    	{
    		Value = $"response {Cats[Rand.Next(0, Cats.Count)]}"
    	});
    }
    

    以上代码是根据.proto中定义的创建。

    ServerCallContext类似于HttpContext,提供上下文的一些信息。

    鸟文名:YamatAmain
    地 址:http://www.cnblogs.com/YamatAmain/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    JDK5后的特性整理
    正向代理与反向代理的区别与异同
    我所用过的nginx的功能
    网页端消息推送之推与拉
    在一个py脚本中调用另外一个py脚本中的类或函数
    import与from ... import ...的区别
    python 读取文件
    shell中的特殊变量IFS
    shell 重定向以及文件描述符
    shell下读取文件数据
  • 原文地址:https://www.cnblogs.com/YamatAmain/p/11583492.html
Copyright © 2020-2023  润新知