API指引 for KSP1

欢迎使用全新的坎喵资源站,这里提供一些API的指引。在使用WordPress REST API之前,你需要向hyx 咨询授权事宜。让我们开始吧!

首先,你需要理解我们将使用的API的工作机制,可以查阅WordPress 官方页面:https://developer.wordpress.org/rest-api/

添加一个新的模组

想添加一个新的模组,你需要向 https://r.kerbcat.cn/wp-json/wp/v2/posts 发送POST 请求。以下是json格式的实例。除此之外,你还需要在header内包含:

Content-Typeapplication/json
AuthorizationBearer 密钥
{
	"date":"2020-08-08T01:01:01", //发布日期,北京时间,无需每次更改。
	"slug":"example-post", //如果是CKAN,此处填写.ckan文件内的identifier
	"status":"publish", //发布状态,无特殊情况无需更改。
	"type":"post", //文章类型,无特殊情况无需更改。
	"title":"示例文章", //标题,如果是CKAN,此处填写.ckan文件内的name,或经坎喵团队翻译的name_zh-cn(优先使用英文)
	"content": "<p>This is an api post example</p>", //内容,html格式,坎喵模组中心要求头图开头。如果是CKAN,此处填写.ckan文件内的abstract,或经坎喵团队翻译的abstract_zh-cn(优先使用中文)
	"excerpt": "This is a api test, posted by rest api with postman. 20200808", //简介,如果是CKAN,此处填写.ckan文件内的abstract,或经坎喵团队翻译的abstract_zh-cn(优先使用中文)
	"author": 2, //作者,在坎喵CN资源站为2
	"featured_media": 0, //无特殊情况无需更改。
	"comment_status": "open", //允许评论,无特殊情况无需更改。
	"ping_status": "closed", //无特殊情况无需更改。
	"sticky": false, //置顶,无特殊情况无需更改。
	"template": "", //模板,无特殊情况无需更改。
	"format": "standard", //格式,无特殊情况无需更改。
	"meta": {
		"cao_paynum": "0", //下载量,如果是CKAN,此处填写CKAN-meta根目录的downloads.json数据
		"post_style": "sidebar", //页面格式,无特殊情况无需更改。
        	"cao_price": "0", //价格,模组中心内容必须为0
        	"cao_vip_rate": "1", //vip价格,模组中心内容必须为1
        	"cao_close_novip_pay": "", //无特殊情况无需更改。
        	"cao_is_boosvip": "", //无特殊情况无需更改。
        	"cao_status": "1", //无特殊情况无需更改。
		"cao_downurl": "https://example.com", //下载链接,此处填写.ckan文件内的download
        	"cao_downurl_bak": "", //备用下载链接,无需填写。
        	"cao_diy_btn": "访问源站|https://example.com", //自定义按钮,模组中心内容需为“访问源站|resources link” resources link 来自.ckan文件内的resources项,优先填写forum链接,如无任何链接此项留空("")
        	"cao_pwd": "", //下载密码,无需填写。
        	"cao_demourl": "", //演示链接,无需填写。
        	"cao_info": {
			"0":{
				"title":"作者",
				"desc":"example" //如果是CKAN,此处填写.ckan文件内的author,多个作者英文半角逗号隔开。
			},
			"1":{
				"title":"模组版本",
				"desc":"1.14.514"//如果是CKAN,此处填写.ckan文件内的version
                        "2":{
				"title":"兼容游戏版本",
				"desc":"1.10.1"//如果是CKAN,此处填写.ckan文件内的game_version
			},
			"3":{
				"title":"大小",
				"desc":"1919.810 MB" //如果是CKAN,此处填写.ckan文件内的download_size,需转换大小为MB
			},
			"4":{
				"title":"协议",
				"desc":"restricted" //如果是CKAN,此处填写.ckan文件内的license
			}
		}, 
		"cao_video": "", //视频功能,无特殊情况无需更改。
		"cao_is_video_free": "", //视频功能,无特殊情况无需更改。
		"video_poster_url": "", //视频功能,无特殊情况无需更改。
		"video_url": "", //视频功能,无特殊情况无需更改。
		"post_titie_s": "", //SEO功能,无特殊情况无需更改。
		"post_titie": "", //SEO功能,无特殊情况无需更改。
		"post_description_s": "", //SEO功能,无特殊情况无需更改。
		"description": "", //SEO功能,无特殊情况无需更改。
		"post_keywords_s": "", //SEO功能,无特殊情况无需更改。
		"keywords": "", //SEO功能,无特殊情况无需更改。
		"game_version": "1-10-1", //支持游戏版本,如果是CKAN,此处填写.ckan文件内的ksp_version/ksp_version_min/ksp_version_max , 优先级为ksp_version_max > ksp_version > ksp_version_min。抛弃1.3.0 以下的mod。可选value详见【附表1】
		"mod_descriptors": "control", //模组描述,如果是CKAN,此处填写.ckan文件内的tags key中第二行value,可选value详见【附表3】
	},
	"categories":15 //模组分类,如果是CKAN,此处填写.ckan文件内的tags key中第一行category对应的分类ID,可选value详见【附表2】
}

2020/8/14更新: 原mod_categories特殊分类由Wordpress默认的categories分类选项代替,请查看附表2并使用ID填入相应字段。

2020/8/17更新: cao_info 添加game_version,中文title:游戏版本; 原cao_info -> 版本 更名为 模组版本

更新一个已有模组

要更新一个现有模组,首先你需要知道你所需更新的文章id,这可以通过向 https://r.kerbcat.cn/wp-json/wp/v2/posts 发送GET请求来得到。推荐在新增模组时便记录下每个模组对应的id,这样更加方便。

更新数据和新增的做法是有区别的,想更新一个已有的模组,你需要向 https://r.kerbcat.cn/wp-json/wp/v2/posts/%id 发送POST 请求。%id就是你所需要更新的文章的ID。以是json格式的实例。除此之外,你还需要在header内包含:

Content-Typeapplication/json
AuthorizationBearer 密钥

与新增不同,更新请求发送的json只需要包含你需要更新的内容。举个例子,如果你需要更新模组下载链接,你只需要发送:

{
	"meta": {
		"cao_downurl": "https://example.com"
	}
}

而不是像新增一样,发送整个post的请求。也请务必不要更新整个数据,这可能会导致一些兼容性BUG。

附表

有一些value是固定传入的,这里附上表格

game_version

版本版本ID
1.3.01-3-0
1.3.11-3-1
1.4.01-4-0
1.4.11-4-1
1.4.21-4-2
1.4.31-4-3
1.4.41-4-4
1.4.51-4-5
1.5.01-5-0
1.5.11-5-1
1.6.01-6-0
1.6.11-6-1
1.7.01-7-0
1.7.11-7-1
1.7.21-7-2
1.7.31-7-3
1.8.01-8-0
1.8.11-8-1
1.9.01-9-0
1.9.11-9-1
1.10.01-10-0
1.10.11-10-1
通用any
game_version 附表1

categories 适用于《坎巴拉太空计划》的模组

名称别名ID
应用app3
插件plugin14
旗帜flags4
机构agency6
物理physics7
运行库library8
部件parts9
配置config10
未分类ksp1-uncategorized5
categories 附表2

mod_descriptors

名称别名
便利convenience
信息information
图像graphics
建筑buildings
战斗combat
控制control
无人uncrewed
星球包planet-pack
生涯career
科技science
科技树tech-tree
编辑器editor
资源resources
载人crewed
通信comms
音效sound
未分类uncategorized
mod_descriptors 附表3