武装你的WEBAPI-OData之API版本管理

本文属于OData系列 Intro 对外提供WEBAPI时,如果遇上了版本升级,那么控制WEBAPI的版本也是非常必要的。OData官方提供了版本控制以及管理的解决方案,我个人是实践体会是不好用,好在社区提供了对应的nuget包,与.NET主版本同步更新。 介绍 ASP.NET API Versio

武装你的WEBAPI-OData与DTO

本文属于OData系列文章 Intro 前面写了很多有关OData使用的文章,很多读者会有疑问,直接将实体对象暴露给最终用户会不会有风险?$expand在默认配置的情况下,数据会不会有泄露风险? 答案是肯定的,由于OData的特性,提供给我们便捷同时也会带来一些风险。很多地方推荐使用DTO模式来隔离

武装你的WEBAPI-OData使用Endpoint

本文属于 OData 系列文章 Introduction 更新: 由于新版的 OData 已经默认使用了 endpoint 模式(Microsoft.AspNetCore.OData 8.0.0),不再需要额外配置,本文已经过时(asp.net core 3.1)。 最近看 OData 的 devb

XUnit数据共享与并行测试

引言 在单元或者集成测试的过程中,需要测试的用例非常多,如果测试是一条一条过,那么需要花费不少的时间。从 V2 开始,默认情况下 XUnit 自动配置并行(参考资料),大大提升了测试速度。本文将对 ASP.NET CORE WEBAPI 程序进行集成测试,并探讨 XUnit 的数据共享与测试并行的方

OData WebAPI实践-OData与EDM

本文属于 OData 系列 引言 在 OData 中,EDM(Entity Data Model) 代表“实体数据模型”,它是一种用于表示 Web API 中的结构化数据的格式。EDM 定义了可以由 OData 服务公开的数据类型、实体和关系。 EDM 也提供了一些规则来描述数据模型中的实体之间的关

OData WebAPI实践-Non-EDM模式

本文属于OData系列文章 前文说到了 EDM 与 OData 之间的关系,具有 EDM 的 OData 提供了强大的查询能力,但是 OData 并不必须要配置 EDM,我们也可以使用 Non-EDM 方案。 Non-EDM 所谓 Non-EDM ,并不是说在 OData 运行时不需要 EDM 配置

OData WebAPI实践-兼容OData集合响应

本文属于 OData 系列文章 引言 OData 是一个开放标准,已经在 oasis 组织标准化,因此我们可以在标准的官网查询到 OData 的标准请求与返回形式:OData JSON Format Version 4.01 (oasis-open.org) 针对不同的数据类型,输出返回的格式也不尽

System.Text.Json匿名对象反序列化

以前就是一直使用 `Newtonsoft.Json` 用起来还是挺舒服的。由于 JSON 的应用越来越广,现在. NET Core 都内置了 `System.Text.Json` 可以直接对 JSON 进行操作,不过两个东西的体验依然有点区别。 有时候我们会遇到的从第三方传递过来的 json str

重建sln的项目层级

编写包含多个 `csproj` 的程序时,随着项目数量的持续增加,可能涉及一些文件夹的变动,手动添加项目或者变动会变得非常麻烦,这个时候,可以利用 `dotnet cli` 帮助我们完成。 如果从零开始,我们可以新建一个解决方案。 ```powershell dotnet new sln -n to

Spectre.Console-实现自己的CLI

## 引言 最近发现自己喜欢用的 Todo 软件总是差点意思,毕竟每个人的习惯和工作流不太一样,我就想着自己写一个小的[Todo 项目]( https://github.com/circler3/TodoTrack ),核心的功能是自动记录 Todo 执行过程中消耗的时间(尤其面向程序员),按照自己

Spectre.Console-处理依赖注入

## 引言 之前说的做自动记录 Todo 执行过程中消耗的时间的[Todo 项目]( https://github.com/circler3/TodoTrack ),由于想持续保持程序执行,就放弃了 `Spectre.Console.Cli`,后来随着命令越来越多,自己处理觉得很是麻烦,想了想要不试

对DenseTensor进行Transpose

`ML.NET` 是微软推出的为. NET 平台设计的深度学习库,通过这个东西(`ModelBuilder`)可以自己构建模型,并用于后来的推理与数据处理。虽然设计是很好的,但是由于现在的 AI 发展基本上都以 `python` 实现作为基础,未来这个东西的发展不好说,特别是模型构建部分。我个人认为

迁移现有用户数据到ABP vNext

## 前言 使用 ABP vNext(下文简称 ABP)时,通常都是从 cli 开始新建模板,从一个空项目开始。对已经存续的项目来说,现有的数据,特别是用户等核心数据需要进行迁移。 老的项目,随着规模越来越大,每次修改都需要更改非常多地方,最重要的是,共用数据库使得维护起来需要小心翼翼。为了后续维护

为控制器生成OpenAPI注释

非常喜欢. NET 的 `///` 注释,写代码的时候就顺道完成写文档的过程,简直不要太爽了。 ASP. NET CORE 也是一样的,通过 `Swagger` 工具,可以自动生成 API 的接口文档(OpenAPI[规范](https://openapi.apifox.cn/)),提供给前端使用,

postgresql序列重复问题处理

## 问题 在执行数据插入时,postgresql 提示*more than one owned sequence found*错误。这个和之前文章中写的[序列编号错乱](https://www.cnblogs.com/podolski/p/17349217.html)不同,是由数据表的一个列生成了

解决WSL2无法启动提示“找不到元素”

最近一段时间没有看 docker desktop,忽然想起来打开看看,结果死活启动不了。以前卸载之后,重新安装就好了,同样的方法尝试了很多次还是不太行,重启也不行... 后来想想是不是 wsl 出了问题,运行 WSA ,WSAClient 启动后又自动退出了。在命令行下运行 wsl,等待了很久,出现

OData WebAPI实践-与ABP vNext集成

本文属于 OData 系列文章 ABP 是一个流行的 ASP. NET 开发框架,旧版的的 ABP 已经能够非常好的支持了 OData ,并提供了对应的 OData 包。 ABP vNext 是一个重新设计的,面向微服务的框架,提供了一些非常有用的特性,包括分页查询等但是它并不能原生支持 OData

[转帖]亲和性调度

文章目录 简介nodeAffinity 节点亲和性podAffinity亲和性调度实例互斥性调度实例 简介 前面的 nodeSelector 调度略显生硬,如果场景是:某个 Pod 最好调度到磁盘大的节点上,如果暂时没有,小点也行,比方说数据库; 如果场景是:某个 Pod,坚决不能调度到某类节点上,

[转帖]CKA 真题

https://segmentfault.com/a/1190000021380185 1.列出pod并排序 kubectl get pod --sort-by .metadata.name 题目一般都是按名字排序 2.找出pod中的错误日志 kubectl logs heapster-798fcd

在 K8S Volume 中使用 subPath

使用 subPath 有时,在单个 Pod 中共享卷以供多方使用是很有用的。 volumeMounts.subPath 属性可用于指定所引用的卷内的子路径,而不是其根路径。 下面是一个使用同一共享卷的、内含 LAMP 栈(Linux Apache Mysql PHP)的 Pod 的示例。 HTML