Transcript ppt
Aleph : X-Server 接口简介及应用实例
周磊
2014-6
内容
X-server 简介
入门
权限控制
转换机制(Translate)
常用 X-Services应用实例:
书目相关接口
读者相关接口
馆员认证接口
更新读者接口
2
内容
X-server 简介
入门
权限控制
转换机制(Translate)
常用 X-Services样例:
书目相关接口
读者相关接口
馆员认证接口
更新读者接口
3
X-server 简介 – 1
基于 URL/XML 的API接口
应用于Exlibris 产品之间及与Exlibris产品与外部应用系
统之间进行互操作
Ex Libris 产品例如Metalib , Verde, PDS, Web ILL 都会
用到Aleph的X-Server
第三方应用系统如一卡通系统、门禁系统、电子阅览室系统、
自助办证、移动服务、短信服务等
Aleph本地开发模块:APSM、APSS、AOMS、AIMS、
APMS、WebCIR等
4
X-server 简介 – 2
接口返回有层级关系的结构化XML格式数据
易于理解
有大量商用解析器可直接使用
GUI
Client
Proprietary
format
XML
Client
XML
Browser
Aleph
HTML
5
X-Server 简介 – 3
调用语法
http://<server>:<port>/X?op=<servicename>&<param_name>=<param_value>
Port就是OPAC的端口。
通常使用GET机制发送请求
但对于update-bor,update-doc等接口使用POST机制发送
请求
6
样例1 – 查找
输入:
http://202.198.141.86:8992/X?op=find&request
=wti=oracle&base=whu01
基地址: IP:Port/X?
接口名: op=find
参数: &request=wti=oracle
参数: &base=whu01
输出:
7
样例2 – 读者认证
http://202.198.141.86:8992/X?op=borauth&id=ID51&verification=1234
8
ALEPH 500系统 X-service 接口
查询、排序、显示
书目记录创建、更新
联编异构系统上载书目、馆藏
馆藏信息查询、更新
读者认证、读者查询、读者记录创建、更新、删除
借、还、续借、预约、现金事务处理
订单修改、订单转移、订单删除
图书封面、热门信息推送
短信通知服务接口
99
常用 X-services列表1
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
bor-auth
bor-by-key
bor-course
bor-info
circ-status
find
find-doc
get-holding
get-sort-codes
hold-req
hold-req-cancel
item-data
present
renew
sort-set
•
•
•
•
•
•
•
•
•
•
•
•
•
•
update-bor
update-doc
explain
login
user-auth
ill-arrive-copy
ill-arrive-loan
ill-bor-auth
ill-bor-info
ill-build-loan
ill-create-pat
ill-get-doc
ill-get-doc-short
ill-get-set
10
•
•
•
•
•
•
•
•
•
•
•
•
•
•
ill-loan-return
ill-print-holdings
ill-print-items
ill-holds-delete
ill-in-loc
ill-in-loc-preview
ill-item-by-bc
ill-item-delete
ill-item-due-date
ill-item-info
ill-loan-info
ill-loan-lost
ill-loan-recall
ill-loan-renew
常用 X-services列表2
•
•
•
•
•
•
•
bor_auth_valid
bor_info_nlc
item_data_nlc
loan_history
hold_list
overdue_list
return_date
•
•
•
•
•
•
•
•
•
bor_status
bor_farewell
hold_req_nlc
update_bor_nlc
update_bor_id
update_item_nlc
update_cash
update_user_pwd
update_order
11
•
•
•
•
•
•
•
•
lcl_loan
lcl_return
lcl_find
lcl_doc_short
get_bor_idp
get_hol_ucs
update_doc_ucs
update_hol_ucs
内容
X-server 简介
入门
权限控制
转换机制(Translate)
常用 X-Services样例:
书目相关接口
读者相关接口
馆员认证接口
更新读者接口
12
X-server 权限控制
IP控制
$alephe_tab/server_ip_allowed
账号控制
user_name
user_password
13
权限控制 – 账号控制 – 1
每个接口都对应一项工作人员权限
系统设置缺省账号WWW-X/WWW-X。该账号的权限就
是匿名X-server用户的权限。
find, find-doc 和 present 接口完全开放
注意: 如果修改了WWW-X用户的密码,就取消了匿名访
问。同时,可以通过增减WWW-X用户的账号权限来调整
匿名用户的权限。
14
权限控制 – 账户控制 -2
可以为不同的用户配置不同的权限
15
权限控制 – 账户控制 – 3
• 可以有两种方式调用先前创建的用户:
方法 1:
在提交url接口里,增加 user_name和 user_password两个参数。
•
例如:
• 测试账户: WWW-TEST/TEST
http://202.198.141.86:8992/X?op=borauth_valid&id=ID51&verification=1234&user_name=WWWTEST&user_password=TEST
16
权限控制 – 账户控制 – 4
• 不带user_name,user_password的话就校验WWW-X用户的权限:
http://202.198.141.86:8992/X?op=borauth_valid&id=ID51&verification=1234
•
17
权限控制 – 账户控制 – 5
• 方法 2:
1) 先带”user_name”,”user_password” 参数调用“login” 接口
2) 如果账户验证通过,X-server 会返回一串 session-ID
3) 在之后调用X-server 的时候都加上 “session” 参数,它的值就是
这串session-ID值。
样例:
1) http://202.198.141.86:8992/X?op=login&user_name=www-
test&user_password=test&library=whu50
2) http://202.198.141.86:8992/X?op=bor-
auth_valid&id=ID51&verification=1234&session=UU3H9FRDJJUXER
7DJCALEU1285HALFKLL7ENIGU9QD28XU2KKE
• 推荐采用第二种方法,因为第一种方法每次调用会产生不同的
session-id,占用license资源。
18
内容
X-server 简介
入门
权限控制
转换机制(Translate)
常用 X-Services样例:
书目相关接口
读者相关接口
馆员认证接口
更新读者接口
19
转换机制 Translate
每个输出都会经过转换
转换机制可以针对tag或数据。可以屏蔽或改变一些tag,或者调整数据显
示格式及内容。
有两种不同的转换机制:
1) 在$alephe_root/www_x_lng/目录下有一系列的*trn 文件。这个可
以处理数据的显示格式及内容
2) 在$alephe_root/www_x_lng/目录下有一系列的*tag文件。可以屏
蔽一些字段,或转换字段名
特别的,对于bor-info接口,还有一个过滤机制 filter-mechanism
20
转换机制 – trn – 1
对于所有接口,都会调用global.trn 和<service-name>.trn
DATE 把数字转换为日期格式
SUB-LIB 把分馆代码转换为分馆名称
PC-TAB-EXP 根据pc_tab_exp_field.lng 参数表,把代码转换为描述
TEXT 直接根据第4列参数的内容做转换
DECIMAL 增加小数点
NONE 不做转换
21
转换机制 – trn – 2
以bor-info为例
http://202.198.141.86:8992/X?op=borinfo&id=6666&session=UU3H9FRDJJUXER7DJCALEU1285HALFKLL7ENIGU9QD28XU2KKE
返回:
<bor-info>
+
<z303>
[…]
<z303-home-library>武大馆</z303-home-library>
<z303-birth-date>08/11/1973</z303-birth-date>
</z303>
<z304>
[…]
</z304>
<z305>
<z305-bor-status>教职工</z305-bor-status>
</z305>
<z31>
<z31-sum>(10.00)</z31-sum>
</z31>
</bor-info>
22
转换机制 – tag – 1
对于所有接口,都会调用global.tag 和<servicename>.tag
Tag转换机制主要用于三个目的:
改变标签(tag)的标题
屏蔽指定tags
屏蔽数据字段
说明: 屏蔽数据能够提高X-server输出的响应时间。
23
转换机制 – tag – 2
例如:
在$alephe_root/www_x_eng/bor-info.tag中设置
z304
z305-id
z305-sub-library
DELETE
DELETE
TRANSLATE
sublib
http://202.198.141.86:8992/X?op=borinfo&id=6666&session=UU3H9FRDJJUXER7DJCALEU1285HALFKLL7ENIGU9QD28XU2
KKE
返回信息中就没有z304节点,而z305-sub-library标签也变更为 sublib
<bor-info>
...
<z305>
<sublib>武大馆</sublib>
<z305-open-date>26/01/2007</z305-open-date>
…
24
转换机制- filter – 1
特别的,对于bor-info接口,有一个filter过滤机制,可以定
义那些字段需要显示
可以在$alephe_root/www_x_eng 中增加一个文件,比如
tab_bor_info_filter,在这个文件中列出来需要显示的字段:
样例:tab_bor_info_filter:
Z303-NAME
Z304-TELEPHONE
25
转换机制- filter– 2
在bor-info接口里增加参数 &filter_data=<file_name> :
http://202.198.141.86:8992/X?op=borinfo&id=ID51&cash=O&filter_data=tab_bor_info_filter&sessi
on=UU3H9FRDJJUXER7DJCALEU1285HALFKLL7ENIGU9QD28XU2KKE
这样只有读者姓名、电话会显示了:
26
内容
X-server 简介
入门
权限控制
转换机制(Translate)
常用 X-Services样例:
书目相关接口
读者相关接口
馆员认证接口
更新读者接口
27
书目检索、排序与显示 - 1
查找find
http://202.198.141.86:8992/X?op=find&request=wti=
oracle&base=whu01&session=UU3H9FRDJJUXER7DJCA
LEU1285HALFKLL7ENIGU9QD28XU2KKE
Request参数:检索式
Base 参数:检索库
返回
Set_number 结果集名称
No_records 命中记录数
No_entries 可显示记录数
28
书目检索、排序与显示 - 2
排序sort-set
http://202.198.141.86:8992/X?op=sort_set&lib
rary=whu01&set_number=000081&sort_code_
1=01&sort_order_1=D&sort_code_2=04&sort_
order_2=A&session=UU3H9FRDJJUXER7DJCALE
U1285HALFKLL7ENIGU9QD28XU2KKE
sort_code 来自书目库的tab_sort 参数表,通常是
01
02
03
04
年份
著者
题名
索书号/分类号
29
书目检索、排序与显示 - 3
显示 present
http://202.198.141.86:8992/X?op=present&bas
e=whu01&set_number=000081&set_entry=000
000001&session=UU3H9FRDJJUXER7DJCALEU1
285HALFKLL7ENIGU9QD28XU2KKE
显示一条
http://202.198.141.86:8992/X?op=present&bas
e=whu01&set_number=000081&set_entry=000
00000100000010&session=UU3H9FRDJJUXER7DJCALE
U1285HALFKLL7ENIGU9QD28XU2KKE
显示多条
30
书目检索、排序与显示 - 4
31
显示书目的馆藏状态
馆藏状态 circ_status
http://202.198.141.86:8992/X?op=circ_status&
sys_no=000610238&library=WHU01&session=
UU3H9FRDJJUXER7DJCALEU1285HALFKLL7ENIG
U9QD28XU2KKE
32
读者相关接口 - 1
读者认证 bor-auth:
http://202.198.141.86:8992/X?op=borauth&id=ID51&verification=1234&library=WHU50&sess
ion=UU3H9FRDJJUXER7DJCALEU1285HALFKLL7ENIGU9
QD28XU2KKE
如果密码正确,返回读者的z303,z304,z305信息
否则返回 <error>Error in Verification</error>
33
读者相关接口 - 1
读者认证 bor-auth-valid:
http://202.198.141.86:8992/X?op=borauth_valid&id=ID51&verification=1234&library=WHU50
&session=UU3H9FRDJJUXER7DJCALEU1285HALFKLL7E
NIGU9QD28XU2KKE
比bor-auth接口增加了检查读者有效性,在tab_check_circ中定
义:
• BOR-AUTH
• BOR-AUTH
check_circ_1_a
check_circ_1_c_a
如果密码正确,且读者证卡有效,返回读者的z303,z304,z305
信息
否则返回
• <error>验证错误</error> 或
• <error>不是有效读者</error>
34
读者相关接口 - 2
读者信息 bor-info:
http://202.198.141.86:8992/X?op=borinfo&id=ID51&library=WHU50&session=UU3H9FRDJJU
XER7DJCALEU1285HALFKLL7ENIGU9QD28XU2KKE
可以不用密码,返回读者的z303,z304,z305以及外借、预约、
现金事务等信息
可以通过参数过滤是否显示相关信息
•
•
•
•
Loan=N 不显示外借
Hold=N 不显示预约
Cash=O 只显示未完成的现金事务
Format=1显示详细读者信息,包括多个地址信息和多个ID信息
35
馆员认证
馆员认证user-auth
http://202.198.141.86:8992/X?op=userauth&staff_user=TEST&staff_pass=TEST&library=WHU50&
session=UU3H9FRDJJUXER7DJCALEU1285HALFKLL7ENIGU9QD2
8XU2KKE
如果认证成功,返回账户基本信息
36
更新读者记录 - 1
更新读者记录 update-bor
可以新建、更新、删除读者记录
采用POST方式,需要做一些脚本
<input type="hidden" name="op" value="update-bor">
<input type="hidden" name=“SESSION"
value="UU3H9FRDJJUXER7DJCALEU1285HALFKLL7ENIGU9QD28XU2KKE
">
<input type="hidden" name="library" value=“WHU50">
<input type="hidden" name="update_flag" value="Y">
<textarea name="xml_full_req" cols="50" rows="10"></textarea>
同时准备一个xml_full_req 文件,里面存放的xml格
式的详细读者信息
37
更新读者记录 - 2
Xml_full_req 文件内容:
38
参考文档
ALEPH 18[1].01 X-Services.pdf
Aleph 500 X-Services -- LOCALIZATION.doc
Aleph 500常用 X-Services列表.doc
文档中心
39
Thank you!
[email protected]