dotnet core微服务框架Jimu ~部署和调用演示
首先运行 consul
以开发模式运行
consul agent -dev
2. 调试
- 用 Visual Studio 2022 IDE 打开项目;
- 右击解决方案-选择“属性”
- 在属性界面下,选择多项目启动, News.Server, Auth.Server, Register.Server, ApiGateway 几个项目的操作方式选择为“启动”;
如下图 
3. 部署
- 用 Visual Studio 2022 IDE 打开项目;
- 右击 News.Server 项目,选择“发布”(Auth.Server,Register.Server,ApiGateway 同理)
- 选择发布的文件夹;
- 用命令提示符进入文件夹,启动项目
dotnet News.Server.dll
如下图


apigateway & server 
service
service detial 
4. postman 调用
调用方不需要知道微服务部署的地址,直接访问网关就可以了。
打开网关的服务列表可以看到所有服务的调用路径,在展开服务的明细可看到更多关于该服务的信息,如授权、角色限制等。

直接复制上面所示的调用地址,下面用 postman 对 api 进行调用:
4.1 Register
4.1.1 判断用户名 grissom 是否可用
- 使用 GET 方法请求;
- Content-Type 设置为 application/json;


4.1.2 注册会员 grissom
请求路径: http://localhost:5000/api/v1/register/register?name=grissom&nickname=Gil&pwd=123
4.2 Auth
4.2.1 获取 token
上面注册会员都是匿名访问的,但访问受保护的 api 必须先获取 token 请求 token api 需要:
- 使用 Post 方法请求;
- Content-Type 设置为 application/json;
- Body 用 json 格式, 如 {"username":"grissom","password":"123"};



返回结果是一个 json 格式的对象, access_token 就是生成的 token, expired_in (数字时间戳从 1970 到现在的秒数)是 token 的失效时间
{
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE1MzIzNjUzNzUsInVzZXJuYW1lIjoiZ3Jpc3NvbSIsInJvbGVzIjoiYWRtaW4iLCJtZW1iZXIiOiJ7XCJJZFwiOlwiNTgwMDc4MGYtMjMyMy00ZTdjLWFmMDEtOWEyNzY4NDE0N2MyXCIsXCJOYW1lXCI6XCJncmlzc29tXCIsXCJOaWNrTmFtZVwiOlwiR2lsXCIsXCJSb2xlXCI6XCJhZG1pblwifSJ9.Rr1g94btU8oxJ3ci7dg3OY_QEj2sBhxI-YtyFZQONbQ",
"expired_in": 1532365375
}
4.2.2 获取当前会员信息
- 使用 GET 方法请求;
- Content-Type 设置为 application/json;
- Authorization 设置为上面生成的 token, 格式: Bearer {token} 如
Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE1MzIzNjUzNzUsInVzZXJuYW1lIjoiZ3Jpc3NvbSIsInJvbGVzIjoiYWRtaW4iLCJtZW1iZXIiOiJ7XCJJZFwiOlwiNTgwMDc4MGYtMjMyMy00ZTdjLWFmMDEtOWEyNzY4NDE0N2MyXCIsXCJOYW1lXCI6XCJncmlzc29tXCIsXCJOaWNrTmFtZVwiOlwiR2lsXCIsXCJSb2xlXCI6XCJhZG1pblwifSJ9.Rr1g94btU8oxJ3ci7dg3OY_QEj2sBhxI-YtyFZQONbQ

4.3 News
会员服务: 获取所有新闻、获取指定新闻、发布新闻 都是受保护的 api (EnableAuthorization:true),所以调用时都需要带上 token
4.3.1 获取所有新闻
- 使用 GET 方法请求;
- Content-Type 设置为 application/json;
- Authorization 设置为上面生成的 token, 格式: Bearer {token}
- 调用路径: api/v1/news/getallnews

4.3.2 发布新闻
发布新闻的接口接受的是一个对象,所以需要用 POST
- 使用 POST 方法请求;
- Content-Type 设置为 application/json;
- Authorization 设置为上面生成的 token, 格式: Bearer {token}
- 调用路径: api/v1/news/postnews

根据返回的 id 获取该篇新闻 
4.3.3 角色限制
我们看看发布新闻方法的声明 
指定了 Roles="admin", 即需要具有 admin 角色的用户才能访问, 而上面调用发布新闻的用户是 grissom , 在模拟数据里配置了他属于 admin 角色 
而用户 Foo 的角色是 guest, 我们换成他去获取 token, 然后再调用发布新闻的 api, 会报错: 未授权 
dotnet core微服务框架Jimu ~部署和调用演示的更多相关文章
- 基于.NET CORE微服务框架 -surging的介绍和简单示例 (开源)
一.前言 至今为止编程开发已经11个年头,从 VB6.0,ASP时代到ASP.NET再到MVC, 从中见证了.NET技术发展,从无畏无知的懵懂少年,到现在的中年大叔,从中的酸甜苦辣也只有本人自知.随着 ...
- hello world .net core 微服务框架 Viper
1.Viper是什么? Viper 是.NET平台下的Anno微服务框架的一个示例项目.入门简单.安全.稳定.高可用.全平台可监控.底层通讯可以随意切换thrift grpc. 自带服务发现.调用链追 ...
- 基于.NET CORE微服务框架 -谈谈surging API网关
1.前言 对于最近surging更新的API 网关大家也有所关注,也收到了不少反馈提出是否能介绍下Api网关,那么我们将在此篇文章中剥析下surging的Api 网关 开源地址:https://git ...
- .NET Core 微服务架构-Docker部署
本文主要介绍通过Docker来部署通过.NET Core开发的微服务架构,部署的微服务主要包括统一网关(使用Ocelot开发).统一认证(IdentityServer4).应用服务(ASP.NET C ...
- net core 微服务框架 Viper 调用链路追踪
1.Viper是什么? Viper 是.NET平台下的Anno微服务框架的一个示例项目.入门简单.安全.稳定.高可用.全平台可监控.底层通讯可以随意切换thrift grpc. 自带服务发现.调用链追 ...
- 基于.NET CORE微服务框架 -浅析如何使用surging
1.前言 surging受到大家这么强烈的关注,我感到非常意外,比如有同僚在公司的分享会上分享surging, 还有在博客拿其它的RPC框架,微服务做对比等等,这些举动都让我感觉压力很大,毕竟作为个人 ...
- dotnet core 微服务教程
这个教程主要是对于第一次使用dotnet core开发的同学. 运行环境是在centos 7 , 使用了docker容器. 即这是一篇运行在linux的docker容器上的微服务的简单应用. 一. 安 ...
- 基于.NET CORE微服务框架 -谈谈surging的服务容错降级
一.前言 对于不久开源的surging受到不少.net同学的青睐,也受到.net core学习小组的关注,邀请加入.NET China Foundation以方便国内.net core开源项目的推广, ...
- 基于.NET CORE微服务框架 -谈谈Cache中间件和缓存降级
1.前言 surging受到不少.net同学的青睐,也提了不少问题,提的最多的是什么时候集成API 网关,在这里回答大家最近已经开始着手研发,应该在1,2个月内会有个初版API网关,其它像Token身 ...
- .net Core 微服务框架 surging 使用
surging 是一个分布式微服务框架,提供高性能RPC远程服务调用,采用Zookeeper.Consul作为surging服务的注册中心, 集成了哈希,随机,轮询作为负载均衡的算法,RPC集成采用的 ...
随机推荐
- JAVAEE——navicat安装
Navicat Premium 15激活步骤 准备 Navicat Premium 15.Navicat Premium 15注册机 用到的都放在这里了: 链接:https://pan.baidu.c ...
- 一款超级给力的弱网测试神器—Qnet(附视频)
一.APP弱网测试背景 App在使用的过程中,难免会遇到不同的弱网络环境,像在公车上.在地铁.地下车库等.在这种情况下,手机常常会出现网络抖动.上行或下行超时,导致APP应用中出现丢包延迟,从而影响用 ...
- 【赵渝强老师】Flink的Watermark机制(基于Flink 1.11.0实现)
在使用eventTime的时候如何处理乱序数据?我们知道,流处理从事件产生,到流经source,再到operator,中间是有一个过程和时间的.虽然大部分情况下,流到operator的数据都是按照事件 ...
- vue前端开发仿钉图系列(6)左侧记事本的开发详解
在页面开发中,深深的被element组件所吸引,里面很多小组件都可以直接使用.像是记事本提示.记事本列表时间线.右侧编辑页面的form表单,编辑和查看状态的切换等等,比之前iOS原生开发所有的东西都要 ...
- Javascript的基本数据类型和引用数据类型有哪些?null 和 undefined的区别
基本数据类型 : number string boolean null undefined 引用数据类型: object --> function array function and a ...
- base64 是什么,有什么作用?
base64 是图片编码的一种形式,可以替代图片的url进行网络访问和请求等操作: 使用图片的url形式操作图片,每次都要请求一次网络,因为每次请求都是一个http:都是一个网络开销,都是对服务器的负 ...
- 什么是 h5项目
首先 h5项目不是 html5 的意思,在者 h5 不是微信网页 : h5 是移动网页的统称 :
- MYSQL存储过程-练习2 while 循环
MYSQL存储过程-练习2 while 循环 1 #WHILE循环 2 DELIMITER $$ 3 4 CREATE PROCEDURE `sp_while`() 5 BEGIN 6 DECLARE ...
- 01 如何具备编程思想(以 Python 举例)
博客配套视频链接: https://space.bilibili.com/383551518?spm_id_from=333.1007.0.0 b 站直接看 配套 github 链接:https:// ...
- ServiceMesh 3:路由控制(图文总结)
★ ServiceMesh系列 1 Istio部署 1.1 连接测试机 进入测试机服务器... 1.2 安装Istio 1.2.1 通过官方网站下载Istio # 下载最新版本的Istio $ cur ...