摘要:
本节介绍,在go语言中,如何是用protobuf对数据进行序列化和反序列化。 一、先参考protobuf快速入门章节安装protoc编译器 protoc快速入门 二、安装protoc-gen-go 安装针对go语言的编译器插件。 go get -u github.com/golang/protobu 阅读全文
摘要:
protocol buffers支持map类型定义。 一、map语法 map<key_type, value_type> map_field = N; key_type可以是任何整数或字符串类型(除浮点类型和字节之外的任何标量类型)。请注意,枚举不是有效的key_type。 value_type 可 阅读全文
摘要:
我们在各种语言开发中类的定义是可以互相嵌套的,也可以使用其他类作为自己的成员属性类型。 在protobuf中同样支持消息嵌套,可以在一个消息中嵌套另外一个消息,字段类型可以是另外一个消息类型。 一、引用其他消息类型的用法 // 定义Result消息 message Result { string u 阅读全文
摘要:
在protobuf消息中定义数组类型,是通过在字段前面增加repeated关键词实现,标记当前字段是一个数组。 一、整数数组的例子: message Msg { // 只要使用repeated标记类型定义,就表示数组类型。 repeated int32 arrays = 1; } 二、字符串数组 m 阅读全文
摘要:
当需要定义一个消息类型的时候,可能想为一个字段指定“预定义值序列”中的一个值,这时候可以通过枚举实现。 例子: syntax = "proto3";//指定版本信息,不指定会报错 enum PhoneType //枚举消息类型,使用enum关键词定义,一个电话类型的枚举类型 { MOBILE = 0 阅读全文
摘要:
Protobuf定义了一套基本数据类型,下表罗列出了protobuf类型和其他语言类型的映射表。 阅读全文
摘要:
消息(message),在protobuf中指的就是我们定义的数据结构。 一、语法 syntax = "proto3"; message 消息名 { 消息体 } syntax关键词定义使用的是proto3语法版本,如果没有指定默认使用的是proto2。 message关键词,标记开始定义一个消息,消 阅读全文
摘要:
在网络通信和通用数据交换等应用场景中经常用的技术是JSON和XML,本教程介绍另外一个数据交换的协议工具ProtoBuf。 一、简介 protocol buffers (ProtoBuf)是一种语言无关、平台无关、可扩展的序列化结构数据的方法,它可用于(数据)通信协议、数据存储等。 Protocol 阅读全文
摘要:
我们处理完用户的请求之后,通常我们都会返回html代码,然后浏览器就可以显示html内容;除了返回html,在api接口开发中,我们还可以返回json、xml、jsonp格式的数据。 下面分别介绍beego返回不同数据类型的处理方式。 注意:如果使用beego开发api,那么在app.conf中设置 阅读全文
摘要:
web.Controller基础控制器,为我们提供了多种读取请求参数的函数,下面分别介绍各种获取参数的场景。 一、默认获取参数方式 web.Controller基础控制器为我们提供了GetXXX序列获取参数的函数, XXX指的就是返回不同的数据类型。 例子: // 处理get请求 func (thi 阅读全文
摘要:
控制器函数指的是处理用户请求的函数,前面路由设置章节介绍过,beego框架支持两种处理用户请求的函数。 beego.FilterFunc类型的独立函数 控制器函数(RESTful风格实现,beego默认推荐的格式) 一、beego.FilterFunc函数 这是最简单的请求处理函数,函数原型定义: 阅读全文
摘要:
路由指的就是一个url请求由谁来处理,在beego设计中,url请求可以由控制器的函数来处理,也可以由一个单独的函数来处理,因此路由设置由两部分组成:URL路由和处理函数。 beego提供两种设置处理函数的方式: 直接绑定一个函数 绑定一个控制器对象(RESTful方式) 一、直接绑定处理函数 这种 阅读全文