快速入门

最后更新于:2021-12-01 22:51:46

一、GC Rest API 安装与使用

GC REST API 默认提供了一套常用的接口,包括文章,页面,文章版本,用户,媒体文件,文章类型,评论,分类,标签等。

比如,如果想要获取gechiui中最新的文章,你可以直接在浏览器中输入:

http://www.website.com/gc-json/gc/v2/posts

这时会返回website站点最新的十篇文章。

如果想获取指定的文章(按文章ID),可以输入:

http://www.website.com/gc-json/gc/v2/posts/1

这时可以得到ID为1的文章的详细数据。

网址后面的gc-json/gc/v2一串是是GC REST API自定义的命名空间(namespace)和路由。在目前阶段,我们先不用去管命令空间和路由是什么,先学会操作GC REST API内置给我们使用的这些API接口。

二、常用GC REST API 接口使用介绍(获取数据)

此段介绍GC REST API 常用的获取数据(GET)的接口,提交数据因涉及到较为复杂的认证。

1、文章

(1)获取最新文章(默认获取到最新的10篇文章)

http://www.website.com/gc-json/gc/v2/posts

http://www.website.com/gc-json/gc/v2/posts?page=1

效果相同,page用于指定页数,GC REST API 默认返回10条数据,用page指定数据获取的游标。如

http://www.website.com/gc-json/gc/v2/posts?page=2

可取回最新的第11条数据到第20条数据,以此类推。

(2)设置获取的每页文章数量及分页

http://www.website.com/gc-json/gc/v2/posts?filter[posts_per_page]=5

filter[posts_per_page]=5 用于指定返回文章每页的数量,这里指定每页数量为5篇。

filter[posts_per_page]与page联合使用:

http://www.website.com/gc-json/gc/v2/posts?filter[posts_per_page]=5&page=2

(3)获取指定分类的文章

http://www.website.com/gc-json/gc/v2/posts?filter[cat]=2

filter[cat]=2 指定分类ID为2 ,返回分类ID为2的文章。

分类ID是每个分类目录在创建时自动生成的ID,在gechiui后台“文章”==》“分类目录”中,把鼠标放在分类名称上面,页面下方会出现一个网址,网址中的参数tag_ID=2就是这个分类名称的分类ID。如果没有出现网址,可以点击分类名称下的“编辑”,然后查看网页地址栏,同样可以得到tag_ID=2。下面的标签ID的获得方法也一样。

(4)获取指定标签的文章

http://www.website.com/gc-json/gc/v2/posts?filter[tag]=library

filter[tag]=library 指定标签名为“library”的文章

(5)获取指定分类和有指定标签的文章

http://www.website.com/gc-json/gc/v2/posts?filter[cat]=2&filter[tag]=library

上面两个结合一起,可以得到更具体精确的文章。

(6)获取指定日期的文章

http://www.website.com/gc-json/gc/v2/posts?filter[year]=2016&filter[monthnum]=03

filter[year]=2016&filter[monthnum]=03 设置指定的日期

(7)获取指定作者的文章

http://www.website.com/gc-json/gc/v2/posts?filter[author_name]=jinyun

filter[author_name]=jinyun设置指定作者名字

(8)按关键词搜索文章

http://www.website.com/gc-json/gc/v2/posts?filter[s]=金云

filter[s]=金云 :按给定的关键词搜索文章,返回包含“金云”关键词的文章。

(9)获取随机文章

http://www.website.com/gc-json/gc/v2/posts?filter[orderby]=rand

其中orderby还可以为指定的字段排序

(10)获取相关文章

在网站中,在做SEO优化和页面内容布局时,获取相关文章是比较常见的,可以通过以上几个条件组合来达到获取相关文章的效果。

按标签获取相关文章:

http://www.website.com/gc-json/gc/v2/posts?filter[orderby]=rand&filter[tag]=library&filter[posts_per_page]=6

按分类获取相关文章:

http://www.website.com/gc-json/gc/v2/posts?filter[orderby]=rand&filter[cat]=2&filter[posts_per_page]=6

(11)获取指定文章的数据

http://www.website.com/gc-json/gc/v2/posts/189

得到ID为189的文章数据

文章API详细请参考

2、分类和标签

(1)获取所有的分类

http://www.website.com/gc-json/gc/v2/categories

(2)获取指定分类ID的分类信息

http://www.website.com/gc-json/gc/v2/categories/2

(3)获取所有的标签

http://www.website.com/gc-json/gc/v2/tags

(4)获取指定标签ID的标签信息

http://www.website.com/gc-json/gc/v2/tags/3

分类API详细请参考

标签API详细请参考

3、媒体文件

(1)获取所有的媒体文件信息

http://www.website.com/gc-json/gc/v2/media

(2)获取指定媒体文件ID的媒体文件信息

http://www.website.com/gc-json/gc/v2/media/17

媒体文件API详细请参考

4、页面

(1)获取所有的页面信息

http://www.website.com/gc-json/gc/v2/pages

(2)获取指定页面ID的页面信息

http://www.website.com/gc-json/gc/v2/pages/289

页面API详细请参考

5、类型

(1)获取当前gechiui所有的文章类型

http://www.website.com/gc-json/gc/v2/types

一般情况下会返回post,page和attachment三种类型

(2)获取指定类型

http://www.website.com/gc-json/gc/v2/types/post

类型API详细请参考

6、评论

(1)获取所有评论信息

http://www.website.com/gc-json/gc/v2/comments

(2)获取指定评论ID的单条评论信息

http://www.website.com/gc-json/gc/v2/comments/2

评论API详细请参考

7、用户

(1)获取所有的用户信息

http://www.website.com/gc-json/gc/v2/users

(2)获取指定用户ID的用户信息

http://www.website.com/gc-json/gc/v2/users/1

用户API详细请参考

以上即是GC REST API 内置API接口最为常用的接口数据获取方法。

三、文章数据分析

我们在第三部分讲了如何通过各种接口和参数去获取我们想要的东西,而对于获得到的东西,我们还不是十分了解,因此,有必要讲讲我们所获取的JSON数据到底是什么鬼。当然,作为我们只讲其中一种类型的数据即可,其他都是一样的看,无庸置疑,我们当然是讲最为常用的Post。

我们在使用

http://www.website.com/gc-json/gc/v2/posts

获取数据时,可以看到返回结果是一个数组。这种API我叫它为“集合型”API,类似的有,users,comments,categories,tags,types,media,pages等。

而当我们加上具体的ID后,如

http://www.fymedia.tk/gc-json/gc/v2/posts/189

返回的是一个JSON对象,里面就是这篇文章的所有信息。类似地,users,comments,categories,tags,types,media,pages等也同样。“集合型”API返回的是这些单个JSON对象的集合。认清这一点,对我们使用第三方框架进行GC REST API 扩展开发非常重要。

下面,我们就来看一下一篇文章的JSON数据,上面的请求返回结果如下:

如上图所示,我们可以得到一篇文章的所有信息,包括ID,标题,摘要,内容,别名,网址,类型,状态等等。

我们仔细看一下这个JSON内容后会发现,文章的特色图像是以特色图像的ID给出的,分类,标签也同样是以ID形式给出,如果我们想要得到这篇文章的特色图像和分类、标签这些信息,我们还要另外按前面介绍的接口去把这些信息找出来,很明显,这不但加大了工作量和整合难度,也增加了连接数,在实际开发中,会带来一定的性能问题,这是第一个问题。第二个问题,这么多的信息,我们不禁想问:“有必要吗?”,最经常的情况,在展示给用户浏览时,我们其实只需要ID(作为唯一识别,传值)、标题、摘要、内容、分类、标签、图片、作者、链接地址就够了。这么多的数据,如果不做优化,在传输时也带来数据加载的延迟。

因此,总结一下,GC REST API虽然给我们提供了这一套标准的接口,但也只能作为标准参考而已,在实际使用中,还需要根据实际情况做个性化定制。

个性化定制通常包括:自定义字段、修改返回结果及增加自定义路由等。