golang(5)使用beego 开发 api server 和前端同学拆分开发,使用swagger

1,beego api



Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。

项目地址是:http://swagger.io/

使用 beego 开发自带集成了 swagger的东西。

https://beego.me/docs/advantage/docs.md

github 地址:

https://github.com/beego/swagger

beego 使用最新的版本:1.8.0

2,非常的方便



创建一个项目:apiserver

bee api apiserver
cd apiserver/
bee run -gendoc=true -downdoc=true

会自动下载最新的 swagger 压缩文件:

2017/04/06 20:52:08 INFO     ? 0001 Using ‘apiserver‘ as ‘appname‘
2017/04/06 20:52:08 INFO     ? 0002 Loading default configuration...
2017/04/06 20:52:08 INFO     ? 0003 Downloading ‘https://github.com/beego/swagger/archive/v2.zip‘ to ‘swagger.zip‘...
2017/04/06 20:52:21 SUCCESS  ? 0004 800610 bytes downloaded!

启动成功,直接访问就可以了:

http://localhost:8080/swagger/#/user

非常花里胡哨的界面了,红的绿的黄的紫的。

3,代码里面可乱了



配置文件增加了

EnableDocs = true

其中 commentsRouter_controllers.go 这个文件会根据 controller 里面的内容自动生成。

而在 router 里面配置了 NameSpace。通用的配置了下版本的信息。

可以在页面当中直接提交测试数据的json

可以在页面当中直接进行查询。

和之前官方的文档不太一样。因为版本升级了。

4,一个表单提交



研究了下注释:

// @Description 创建用户
// @Param   Username    formData    string  "zhangsan"  true    "用户名"
// @Param   Password    formData    string  "123456"    true    "密码"
// @Success 200     {int}       models.User.Id models.User.Username models.User
// @Failure 403     body is empty
// @router /addUser [post]
func (u *UserController) Post() {
  1. 参数名
  2. 参数类型,可以有的值是 formData、query、path、body、header,formData 表示是 post请求的数据,query 表示带在 url 之后的参数,path 表示请求路径上得参数,例如上面例子里面的 key,body 表示是一个

    raw 数据请求,header 表示带在 header 信息中得参数。

  3. 参数类型
  4. 默认值
  5. 是否必须
  6. 注释

生成的界面是:

可以发送参数请求了,并且可以将cookie带入。

但是伪造cookie 就不行了。

可以考虑使用header当中存放 Token 参数保持用户登录。

然后在请求的是都放入进去,写死一个Token 保持用户登录。

方便前端同学进行调试开发。

4,总结



本文的原文连接是: http://blog.csdn.net/freewebsys/article/details/69486943 未经博主允许不得转载。

博主地址是:http://blog.csdn.net/freewebsys

beego 已经支持 swagger,开发一个前后端项目分离的项目最方便了。

同时可以要求把cookie 种到cookie 当中,然后使用子域名,进行跨域访问。

在beego 中开启跨域访问。

也可以存储 Token ,然后放到header头中传递用户登录。

同时为了方便测试,可以写入几个默认值写死一直登录。

方便测试借口。

可以把这个swagger 当成一个 PostMan的集合,直接进行测试调试。

非常符合项目拆分开发。非常的方便。

时间: 2024-10-10 03:25:13

golang(5)使用beego 开发 api server 和前端同学拆分开发,使用swagger的相关文章

java微信开发API解析(七)-网页开发-微信网页授权

java微信开发API解析(七)-网页开发-微信网页授权 全局说明 * 详细说明请参考前两篇文章. 本文说明 本文主要完成获取用户基本信息的工作,包括(昵称.头像.地址.国家等基本信息) 对于snsapi_base和snsapi_userinfo我们只演示关于snsapi_userinfo.因为snsapi_userinfo更难,如果能够理解snsapi_userinfo,那么snsapi_base不在话下. 对于该部分(微信网页开发)我们只介绍如何获取用户基本信息,对于开发样式库,js-SDK

Simple Web API Server in Golang (1)

To be an better Gopher, get your hands dirty. Topcoder offered a serials of challenges for learning Golang. In this blog, I tried to implement "Go Learning Challenge - Simple Web-API Server"[1]. What's used in this challenge ? Following aspects

Simple Web API Server in Golang (2)

In this challenge, I tried to implement a simple OAuth2 server basing on Simple Web API Server in [1]. For OAuth2, go to http://oauth.net/2/. Endpoint /api/2/domains/{domain name}/oauth/access_token Use port 80. We would like to use other ports such

API Server 负载均衡问题被解决 | 云原生生态周报 Vol. 40

作者 |?何淋波.李鹏.陈俊.高相林.孙健波 业界要闻 CNCF 宣布 2020 年中国 KubeCon 取消 由于新冠疫情影响,外国企业.开发者到访中国存在不确定性,加上召集演讲人.赞助商及参会者所遇到的困难,CNCF 宣布原定于 2020 年 7 月在上海举办的 KubeCon + CloudNativeCon + 开源峰会取消. 同时,原计划于 3 月 30 日 - 4 月 2 日在荷兰阿姆斯特丹举办的 KubeCon + CloudNativeCon 峰会欧洲场也因疫情影响,被推迟到 2

拿nodejs快速搭建简单Oauth认证和restful API server攻略

拿nodejs快速搭建简单Oauth认证和restful API server攻略:http://blog.csdn.net/zhaoweitco/article/details/21708955 最近一直在鼓捣这个东西,拿出来分享下一下经验吧,其实很简单,一点也不难. 首先需求是这样,给自己的网站要增加API服务,API分为两种,公共的和私有授权的,授权的使用Oauth方法认证身份,API格式均为JOSN和JSONP. 嗯,别的语言我也没怎么学过,首先是找合适的框架进行实现吧.本身网站使用的e

深度剖析Kubernetes API Server三部曲 - part 1

欢迎来到深入学习Kubernetes API Server的系列文章,在本系列文章中我们将深入的探究Kubernetes API Server的相关实现.如果你对Kubernetes 的内部实现机制比较感兴趣或者正在进行Kubernetes 项目的相关开发工作,那么本系列文章能够为你提供一些帮助.了解学习过go语言,会在某些方面帮助你更好的理解本系列文章.在本期文章中,我们首先会对Kubernetes API Server进行一个总体的大致说明,然后对API的技术术语及请求流作说明.在下几期的文

深度剖析Kubernetes API Server三部曲 - part 3

在本系列的前两部分中我们介绍了API Server的总体流程,以及API对象如何存储到etcd中.在本文中我们将探讨如何扩展API资源.在一开始的时候,扩展API资源的唯一方法是扩展相关API源代码,集成为你所需的资源.或者,推动一个全新的类型为新的核心对象API合入社区代码.但是,这样就会导致核心API资源类型的不断增加,直至API过载.为了避免这种API资源的无限制扩展,在Kubernetes中提供两种扩展核心API的方法: 使用自定义资源定义(CRDs),最开始的时候被称为第三方资源(TP

Node.js 从零开发 web server博客项目

第1章 课程介绍 包括课程概述.核心模块.核心技术.课程安排.课程收获.讲授方式.学习前提等方面的介绍,让同学们对课程项目有一个直观的了解. 1-1 课程导读 试看第2章 nodejs 介绍 本章主要为了照顾尚未入门或者刚刚入门 nodejs 的同学,介绍 nodejs 的下载.安装和基本使用,以及 nodejs 和前端 javascript 的区别.另外,重点介绍了服务端开发和前端开发思路上的区别,为后续的开发做一个基础的铺垫. 2-1 下载和安装 2-2 nodejs和js的区别 2-3 c

Node.js 从零开发 web server博客项目 前端晋升全栈工程师必备

第1章 课程介绍包括课程概述.核心模块.核心技术.课程安排.课程收获.讲授方式.学习前提等方面的介绍,让同学们对课程项目有一个直观的了解. 第2章 nodejs 介绍本章主要为了照顾尚未入门或者刚刚入门 nodejs 的同学,介绍 nodejs 的下载.安装和基本使用,以及 nodejs 和前端 javascript 的区别.另外,重点介绍了服务端开发和前端开发思路上的区别,为后续的开发做一个基础的铺垫. 第3章 项目介绍课程是通过案例的形式来学习 nodejs ,本章先来介绍这个案例,即个人博