【Go语言Web开发】使用Golang Keycloak SAML
利用Golang对Keycloak的SAML进行分析。
1.生成证书
SAML的Service Provider需要证书。使用以下命令生成证书:
# openssl req -x509 -newkey rsa:2048 -keyout myservice.key -out myservice.cert -days 365 -nodes -subj "/CN=myservice.example.com"
【前端开发框架】Angular vs React vs Vue.js:比较研究 - 2022
前端开发者在开始一个新项目时首先要回答的问题是:我应该选择哪个框架?哪个框架更适合我的需求?
在本文中,我们将简要概述当前使用的最常见的前端框架,旨在帮助您选择最能满足您需求的框架。这些框架是 Angular、React 和 Vue.js。
快速概览
Angular 是一个包含大量组件、服务和工具的前端框架。在 Angular 的网站上,您可以看到他们将 Angular 定义为:
“现代网络开发者的平台”
它由 Google 开发人员开发和维护,但奇怪的是,它并未用于实现任何他们最常见的产品,例如搜索或 YouTube。
React 被认为是一个 UI 库。他们将自己定义为:
“用于构建用户界面的 JavaScript 库”
Facebook 开发人员支持这个库的开发和维护。而且,在这种情况下,Facebook 的大部分产品都是用 React 制作的。
最后但并非最不重要的一点是,根据其网站,Vue.js 是:
【前端开发框架】Angular vs React vs Vue.js:哪个是 2022 年的最佳选择?
毫无疑问,今天的 Web 应用程序已经成为每个人生活中不可或缺的一部分。从订票到订餐,从预订出租车到在线购物,应用程序显然正在主导商业世界。事实上,技术进步和移动性带来了客户行为的巨大变化。因此,随着移动性的影响在全球范围内不断增加和改变行业,企业热切期待在 2022 年建立在线业务。
随着成千上万的应用程序开发的可用性,创建应用程序并不是一项具有挑战性的工作,但同时,如果您认为打入移动应用程序市场是成功的关键,那么您就错了。为了在这个蓬勃发展的市场中取得成功,它包括深入的规划、独特的战略、广泛的规划以及获得顶级技术以创建企业级应用程序。
但是,在创建应用程序时,哪些技术正在统治应用程序开发市场?
现在,你们中的大多数人都会回答——JAVASCRIPT!
毫无疑问,许多编程语言来来去去,但 JavaScript 一直保持其作为编程语言的突出选择之一的地位。现在的问题是,您应该在 2022 年考虑使用哪种框架进行应用程序开发?
【前端开发框架】Angular Vs React Vs Vue:主要区别和用例
如 Statista 所示,2020 年开发人员之间最常用的 Web 框架是 React 和 Angular。 就在几年前,开发人员还主要争论是否在他们的应用程序中使用 Angular 或 React。 然而,在过去的几年里,我们目睹了对第三个被称为 Vue.js 的玩家的兴趣激增。
Stack Overflow 的数据非常相似:React 在最常用的 Web 框架中名列前茅,有 35.9% 的开发人员使用它。 Angular 占 25.1%,而使用 Vue 的开发人员略少:17.3%。
相比之下,NPM 趋势估计了过去 1 年所有三个 Web 开发框架的下载量,结果与 Angular 和 Vue 不同。 当 Vue.js 下载量超过 Angular 时,React 仍然处于领先地位。
【Web应用开发】ADFS + Angular + ASP.NET Core API
大家好!
在本文中,我将讨论 ADFS + Angular + ASP.NET Core API。
我需要一起做这三件事,我很难找到关于这样做的内容。当它有关于 Angular 的信息时,它没有关于 ASP.NET Core API 的信息,或者它是关于 ASP.NET MVC 项目的信息。哦,很难过!
但是现在,我将这三件事结合在一起,我想解释一些我学到的东西,并提供一个可以帮助其他人的项目。
那么,让我们开始吧!
第 1 部分:ADFS
我不会专注于在 ADFS 中配置您的应用程序,我认为您可以在 Internet 上找到足够多的相关内容。
但是,你需要知道一些事情:
由于前端将与您的后端解耦,因此您需要使用 JWT + OAUTH/OIDC 的方法,您将在其中获得访问令牌。因此,基本上“身份验证发生”在前端,后端检查请求是否有效,或者换句话说,请求的标头中是否有有效的访问令牌。
【Go语言数据库开发】使用 GORM 连接到数据库
GORM正式支持数据库MySQL、PostgreSQL、SQLite、SQL Server
【Go语言数据库开发】Go 中的 Gorm 高级查询
智能选择字段
GORM 允许使用 Select 选择特定字段,如果您经常在应用程序中使用它,也许您想定义一个较小的结构供 API 使用,它可以自动选择特定字段,例如:
type User struct { ID uint Name string Age int Gender string // hundreds of fields } type APIUser struct { ID uint Name string } // Select `id`, `name` automatically when querying db.Model(&User{}).Limit(10).Find(&APIUser{}) // SELECT `id`, `name` FROM `users` LIMIT 10 |
注意 QueryFields 模式将根据当前模型的所有字段名称进行选择
【Go语言Web开发】Go 代码示例:json.Encoder 和 json.Decoder
这些是为客户端和服务器端编码/解码 json 的代码示例。
让我们从服务器端开始。
解码请求
定义请求参数:首先,定义表示请求参数的结构。
type UserRequest struct { Name string `json:"name"` Email string `json:"email"` }
json.Decoder:在请求处理程序中,用请求体创建一个解码器,并用结构体的指针调用解码方法。
【Go语言Web开发】使用 Go 的 net/http 包对 JSON 进行编码和解码
这是一个非常常见的任务:编码 JSON 并将其发送到服务器,在服务器上解码 JSON,反之亦然。令人惊讶的是,关于如何做到这一点的现有资源并不是很清楚。因此,让我们来看看每个案例,对于以下简单的 User 对象:
type User struct{ Id string Balance uint64 }
在 POST/PUT 请求的正文中发送 JSON
让我们从最棘手的开始:Go 的 http.Request 的主体是一个 io.Reader,如果你有一个结构,它就不太适合 - 你需要先编写结构,然后将其复制到阅读器。
【Go语言中级开发】结构到 JSON 的 Golang 数组
下面的代码是将结构数组转换为 JSON 的示例。
package main import ( "log" "encoding/json" ) type Fruit struct { Name string `json:"name"` Quantity int `json:"quantity"` } func main() { a := Fruit{Name:"Apple",Quantity:1} o := Fruit{Name:"Orange",Quantity:2} var fs []Fruit fs = append(fs, a) fs = append(fs, o) log.Println(fs) j, _ := json.Marshal(fs) log.Println(string(j)) j, _ = json.MarshalIndent(fs, "", " ") log.Println(string(j)) }
运行它将产生如下输出。