golang demo 之王realworld,使用golang+gin做后端技术,使用vue做前端项目的开源博客项目

Posted freewebsys

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了golang demo 之王realworld,使用golang+gin做后端技术,使用vue做前端项目的开源博客项目相关的知识,希望对你有一定的参考价值。

目录

前言


本文的原文连接是:
https://blog.csdn.net/freewebsys/article/details/108971807

未经博主允许不得转载。
博主CSDN地址是:https://blog.csdn.net/freewebsys
博主掘金地址是:https://juejin.cn/user/585379920479288
博主知乎地址是:https://www.zhihu.com/people/freewebsystem

1,关于realworld项目


realworld是一个比较简单的,博客网站demo。
相关的接口使用 swagger 进行定义,并且前段、后端项目都使用各种技术栈进行实现。
非常强大的demo网站。是老外学习入门的demo项目。
70K的星,非常多人进行关注。
有 68 个子项目:
前段项目有 vue react anuglar还有些不知道的框架。
后端项目有 java-spring python-django php scala ruby 等等。

github项目地址:
https://github.com/gothinkster/realworld
gitee的镜像地址:
https://gitee.com/mirrors_gothinkster
还有相关的api

2,前端项目使用vue3开发的


从gitee 上面下载代码,有的时候github 网速不够,gitee 上也是镜像的代码进行下载。

https://github.com/gothinkster/vue-realworld-example-app

https://gitee.com/mirrors_gothinkster/vue-realworld-example-app

git clone https://gitee.com/mirrors_gothinkster/vue-realworld-example-app.git
cd /vue-realworld-example-app

# 先把 gyp 和 sass 安装到系统目录,省得编译的时候老报错。

sudo yarn global add node-gyp 
sudo yarn global add node-sass

# 然后把 node-sass 删除掉
 #   "node-sass": "^4.12.0",
# 再进行编译,速度快很多
#设置阿里云 的 npm
# https://www.npmmirror.com/ 这个就是阿里云的新镜像地址
#  https://developer.aliyun.com/mirror/NPM
# 其实就是修改了 /usr/local/etc/npmrc 文件 
sudo npm config set registry=https://registry.npmmirror.com --global
sudo yarn config set registry https://registry.npmmirror.com --global
# 查看本地镜像源
npm config get registry 

$ cat /usr/local/etc/npmrc
registry=https://registry.npmmirror.com/

本地启动之后就有数据了。
使用的是 https://api.realworld.io/
的服务。
访问速度有点慢。

3,后端使用golang+gin进行接口开发


后端代码:
https://github.com/gothinkster/golang-gin-realworld-example-app
giteee:
https://gitee.com/mirrors_gothinkster/golang-gin-realworld-example-app

# https://goproxy.io/zh/
# 配置 GOPROXY 环境变量
export GOPROXY=https://proxy.golang.com.cn,direct
git clone https://github.com/gothinkster/golang-gin-realworld-example-app.git 
cd golang-gin-realworld-example-app
go mod download
go run hello.go

golang gin 端口是 8080 先启动golang服务,然后再启动前端项目。
这样前端项目就变成 8081 端口了。

[GIN-debug] GET    /api/ping/                --> main.main.func1 (3 handlers)
0 AAAAAAAAAAAAAAAA aaaa@g.cn hehddeda <nil> 
[GIN-debug] [WARNING] You trusted all proxies, this is NOT safe. We recommend you to set a value.
Please check https://pkg.go.dev/github.com/gin-gonic/gin#readme-don-t-trust-all-proxies for details.
[GIN-debug] Environment variable PORT is undefined. Using port :8080 by default
[GIN-debug] Listening and serving HTTP on :8080


golang 启动之后,做个出册,发现接口都跨域了。
切换到本地接口发现跨域了,CORS报错了。

对比下接口:

人家网站的跨域返回:


发现并不是跨域,而是做了一个 301 跳转。
目前没有找到具体原因。
其他的接口是可以的。
总之感觉上不是可以直接用就能跑起来的。

golang的项目使用的是 gorm 做数据操作。
使用gin 做controller层,还发现了在validator 层的校验数据失败。

4,总结


realworld 项目还是不错的,但是前端和后端的匹配还不是特别好。
需要自己去解决问题,解决问题的过程就是学习的过程。
再有这些接口用例都要自己动手去写,这样才可以学习到技术。

本文的原文连接是:
https://blog.csdn.net/freewebsys/article/details/108971807

以上是关于golang demo 之王realworld,使用golang+gin做后端技术,使用vue做前端项目的开源博客项目的主要内容,如果未能解决你的问题,请参考以下文章

从golang-gin-realworld-example-app项目学写httpapi

坐实大数据资源调度框架之王,Yarn为何这么牛

如何在 FastAPI RealWorld 示例应用中应用事务逻辑?

RealWorld HazelCast [关闭]

2022 RealWorld CTF体验赛Writeup

2022 RealWorld CTF体验赛Writeup