网站链接:https://yande.re/help/api
Help: API 1.13.0+update.3
Moebooru提供的API和Danbooru API (version 1.13.0)大部分兼容,能够让您更方便的写脚本语言。
你需要的是一种GET和POST到URLs的方法。如果您能解析XML或者JSON的响应,这样更好,但不是很重要,简单的API意味着你可以用JavaScript, Perl, Python, Ruby甚至像bash或tcsh这样的shell语言编写脚本。
基础(Basics)
HTTP定义了两个请求方法:GET和POST。你将使用这两个方法与Danbooru API进行交互。大部分改变数据库状态的API调用(例如创建,更新,或者删除某些内容)需要进行HTTP POST调用。只检索数据的API调用通常可以使用HTTP GET调用来完成。
在Danbooru API中,URL和函数名类似。您将函数参数作为查询字符串传递,这里是一个非常简单的栗子:/post.xml?limit=1.
post部分表示我们正在使用的控制器。在这个栗子下是posts.index描述了动作。这里我们正在检索帖子列表。最后,xml部分描述了我们想要的响应格式。您可以写.xml指定为XML响应,.json指定为JSON响应,或者什么都不写指定为HTML响应。
.xml效果:
.json效果:
html效果:
响应
所有改变状态的API调用将返回单个元素响应(以XML调用为例)他们的格式如下:
<?xml version="1.0" encoding="UTF-8"?>
<response success="false" reason="duplicate"/>
对于JSON响应,他们将如下所示:
{success: false, reason: "duplicate"}
您通常可以根据响应对象来决定(调用)成功或者失败,您还可以根据HTTP状态码知道发生了什么。在标准状态码之外,Danbooru还使用一些范围在4xx到5xx的自定义状态码。
状态码 | 含义 |
---|---|
200 OK | 请求成功(Request was successful) |
403 Forbidden | 拒绝访问(Access denied) |
404 Not Found | 没有找到(Not found) |
420 Invalid Record | 记录无法保存(Record could not be saved) |
421 User Throttled | 用户被调节,稍后再试(User is throttled, try again later) |
422 Locked | 资源被锁定,无法修改(The resource is locked and cannot be modified) |
423 Already Exists | 资源已经存在(Resource already exists) |
424 Invalid Parameters | 给定的参数无效(The given parameters were invalid) |