mwstake/mediawiki-component-commonwebapis

提供各种Web API(操作API和REST API)


README

MediaWiki通用Web API

提供各种Web API(操作API和REST)。

此代码旨在在MediaWiki应用环境中执行。不打算独立使用。

兼容性

  • 2.0.x -> MediaWiki 1.39
  • 1.0.x -> MediaWiki 1.35

先决条件

在MediaWiki扩展中使用

在您的扩展的composer.json中需要此组件

{
	"require": {
		"mwstake/mediawiki-component-commonwebapis": "~2"
	}
}

获取可用端点

$endpoints = MediaWikiServices::getInstance()->getService( 'MWStakeCommonWebAPIs' )->getAvailableEndpoints();

将返回所有已注册端点及其REST路径配置的列表

客户端抽象

为了更容易地从JS访问这些端点,实现了抽象。

要启用它,请加载RL模块ext.mws.commonwebapis并按以下方式使用

mw.loader.using( 'ext.mws.commonwebapis' ).then( function () {
	mws.commonwebapi.user.query( {
		query: 'MyUser'
	} );
} );

REST API

过滤

为了指定过滤器,您可以使用filter参数。它是一个JSON编码的对象数组。每个对象具有以下属性

  • property - 要过滤的字段
  • value - 要过滤的值
  • operator - 用于过滤器的运算符。可能的值包括eq(等于)、neq(不等于)、lt(小于)、lte(小于等于)、gt(大于)、gte(大于等于)、like(类似)、nlike(不类似)、in(在)、nin(不在)、isnull(为空)、isnotnull(非空)、between(之间)、nbetween(不在之间)、ilike(不区分大小写的类似)、nilike(不区分大小写的不同)、regexp(正则表达式)、nregexp(非正则表达式)。根据过滤器的类型,某些运算符可能不可用。
  • type - 值的类型。可能的值包括string(字符串)、integer(整数)、float(浮点数)、boolean(布尔值)、list(列表)

排序

为了指定排序,您可以使用sort参数。它是一个JSON编码的对象数组。每个对象具有以下属性

  • property - 要排序的字段
  • direction - 排序方向。可能的值包括asc(升序)和desc(降序)

示例

mw.loader.using( 'ext.mws.commonwebapis' ).then( function () {
	mws.commonwebapi.user.query( {
		filter: JSON.stringify( [
			{
				field: 'user_name',
				value: 'MyUser',
				operator: 'eq',
				type: 'string'
			}
		] ),
		sort: JSON.stringify( [
			{
				field: 'user_name',
				direction: 'asc'
			}
		] )
	} );
} );