简介¶
Bmob平台为您的移动应用提供了一个完整的后端解决方案,我们提供轻量级的SDK开发包,让开发者以最小的配置和最简单的方式使用Bmob平台提供的服务,进而完全消除开发者编写服务器代码以及维护服务器的操作。 Go SDK封装了Bmob REST API API,但并不包含功能封装,如果需要调用具体的功能,请参考官方REST API API开发文档http://doc.bmobapp.com/data/restful/
快速入门¶
建议您在阅读本开发文档之前,先阅读我们提供的 go快速入门文档,便于您后续的开发。
应用程序¶
在Bmob平台注册后,每个账户可创建多个应用程序,创建的每个应用程序有各自的Application ID,应用程序将凭其Application ID使用Bmob SDK。
应用安全¶
请大家在使用Bmob开发应用程序之前,仔细阅读“数据与安全”的文档:http://doc.bmobapp.com/other/data_safety/
数据类型¶
除了JSON标准里定义的数据类型外,还支持Bmob自定义的数据类型:http://doc.bmobapp.com/data/restful/develop_doc/#_13 这些类型操作相关的基本数据结构在types.go中定义,由于JSON是schema-less的,你可以只填充必要的字段来完成操作
REST API请求¶
一次典型的REST API请求如下:
header, err := bmob.DoRestReq(appConfig,
bmob.RestRequest{
bmob.BaseReq{
"GET",
bmob.ApiRestURL("GameScore") + "/",
""},
"application/json",
nil},
&respDst}
if err == nil {
log.Println(header}
log.Println(respDst}
} else {
log.Panic(err}
}
参数: appConfig - 保存了APP相关的key等信息 RestRequest - 使用Bmob REST API API 所需的信息: {方法, url, sessionToken}, 数据类型, body respDst - 用于保存解析后的response 返回值: header - http.Header, 请求返回的标准HTTP头 * err - 错误信息
curl -X GET \
-H "X-Bmob-Application-Id: Your Application ID" \
-H "X-Bmob-REST-API-Key: Your REST API Key" \
-G \
--data-urlencode 'where={"createdAt":{"$gte":{"__type":"Date","iso":"2011-08-21 18:02:52"}}}' \
https://自己备案域名/1/classes/GameScore
再一次请求中,你需要指定的HTTP方法,URL,sessionToken等均可以在BaseReq中指定, APP验证需要的KEY等在RestConfig中指定 数据段则在转成[]byte类型后传入 上传不同类型的格式时,需要指定编码格式,默认为text/plain,
数据对象¶
Bmob请求格式化数据时,body为JSON格式,用户可以自定义需要的字段,但是由于返回的数据会附加Bmob预定义的字段,所以需要单独处理。 SDK中采取的写法如下:
type TestDataType struct {
Score string
data DataType
}
type TestDataRes struct {
TestData
bmob.RestResponse
}
通过继承自定义的Response结构体,我们可以同时解析返回的数据里的用户定义数据和系统定义数据。
RestResponse包含了解析最常用的请求响应所需的字段,如果需要其他解析其他请求的响应,可以继承SDK中提供的相应的结构体,如ImageResponse
type MyRes struct {
bmob.RestResponse
bmob.ImageResponse
}
这个结构体可以解析标准的REST API响应和Image请求相关的响应