Aleph : X-Server 接口简介及应用实例 周磊 2014-6
内容 X-server 简介 常用 X-Services应用实例: 入门 权限控制 转换机制(Translate) 书目相关接口 读者相关接口 馆员认证接口 更新读者接口 Things we will be covering in the next hour
内容 X-server 简介 常用 X-Services样例: 入门 权限控制 转换机制(Translate) 书目相关接口 读者相关接口 馆员认证接口 更新读者接口 Things we will be covering in the next hour
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等
X-server 简介 – 2 XML Client GUI Client Browser Aleph 易于理解 有大量商用解析器可直接使用 XML Client GUI Client Proprietary format XML Browser Aleph HTML
X-Server 简介 – 3 调用语法 Port就是OPAC的端口。 通常使用GET机制发送请求 http://<server>:<port>/X?op=<servicename>&<param_name>=<param_value> Port就是OPAC的端口。 通常使用GET机制发送请求 但对于update-bor,update-doc等接口使用POST机制发送请求
样例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 输出:
样例2 – 读者认证 http://202.198.141.86:8992/X?op=bor-auth&id=ID51&verification=1234
ALEPH 500系统 X-service 接口 查询、排序、显示 书目记录创建、更新 联编异构系统上载书目、馆藏 馆藏信息查询、更新 读者认证、读者查询、读者记录创建、更新、删除 借、还、续借、预约、现金事务处理 订单修改、订单转移、订单删除 图书封面、热门信息推送 短信通知服务接口
常用 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 • 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 lcl_loan lcl_return lcl_find lcl_doc_short get_bor_idp get_hol_ucs update_doc_ucs update_hol_ucs
内容 X-server 简介 常用 X-Services样例: 入门 权限控制 转换机制(Translate) 书目相关接口 读者相关接口 馆员认证接口 更新读者接口 Things we will be covering in the next hour
X-server 权限控制 IP控制 账号控制 $alephe_tab/server_ip_allowed user_name user_password
权限控制 – 账号控制 – 1 每个接口都对应一项工作人员权限 系统设置缺省账号WWW-X/WWW-X。该账号的权限就是匿名X-server用户的权限。 find, find-doc 和 present 接口完全开放 注意: 如果修改了WWW-X用户的密码,就取消了匿名访问。同时,可以通过增减WWW-X用户的账号权限来调整匿名用户的权限。
权限控制 – 账户控制 -2 可以为不同的用户配置不同的权限
权限控制 – 账户控制 – 3 可以有两种方式调用先前创建的用户: 方法 1: 在提交url接口里,增加 user_name和 user_password两个参数。 例如: 测试账户: WWW-TEST/TEST http://202.198.141.86:8992/X?op=bor-auth_valid&id=ID51&verification=1234&user_name=WWW-TEST&user_password=TEST
权限控制 – 账户控制 – 4 不带user_name,user_password的话就校验WWW-X用户的权限: http://202.198.141.86:8992/X?op=bor-auth_valid&id=ID51&verification=1234
权限控制 – 账户控制 – 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=UU3H9FRDJJUXER7DJCALEU1285HALFKLL7ENIGU9QD28XU2KKE 推荐采用第二种方法,因为第一种方法每次调用会产生不同的session-id,占用license资源。
内容 X-server 简介 常用 X-Services样例: 入门 权限控制 转换机制(Translate) 书目相关接口 读者相关接口 馆员认证接口 更新读者接口 Things we will be covering in the next hour
转换机制 Translate 每个输出都会经过转换 转换机制可以针对tag或数据。可以屏蔽或改变一些tag,或者调整数据显示格式及内容。 有两种不同的转换机制: 1) 在$alephe_root/www_x_lng/目录下有一系列的*trn 文件。这个可以处理数据的显示格式及内容 2) 在$alephe_root/www_x_lng/目录下有一系列的*tag文件。可以屏蔽一些字段,或转换字段名 特别的,对于bor-info接口,还有一个过滤机制 filter-mechanism
转换机制 – trn – 1 对于所有接口,都会调用global.trn 和<service-name>.trn DATE 把数字转换为日期格式 SUB-LIB 把分馆代码转换为分馆名称 PC-TAB-EXP 根据pc_tab_exp_field.lng 参数表,把代码转换为描述 TEXT 直接根据第4列参数的内容做转换 DECIMAL 增加小数点 NONE 不做转换
转换机制 – trn – 2 以bor-info为例 http://202.198.141.86:8992/X?op=bor-info&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>
转换机制 – tag – 1 对于所有接口,都会调用global.tag 和<service-name>.tag 屏蔽数据字段 说明: 屏蔽数据能够提高X-server输出的响应时间。
转换机制 – tag – 2 例如: 在$alephe_root/www_x_eng/bor-info.tag中设置 z304 DELETE z305-id DELETE z305-sub-library TRANSLATE sublib http://202.198.141.86:8992/X?op=bor-info&id=6666&session=UU3H9FRDJJUXER7DJCALEU1285HALFKLL7ENIGU9QD28XU2KKE 返回信息中就没有z304节点,而z305-sub-library标签也变更为 sublib <bor-info> ... <z305> <sublib>武大馆</sublib> <z305-open-date>26/01/2007</z305-open-date> …
转换机制- filter – 1 特别的,对于bor-info接口,有一个filter过滤机制,可以定义那些字段需要显示 可以在$alephe_root/www_x_eng 中增加一个文件,比如 tab_bor_info_filter,在这个文件中列出来需要显示的字段: 样例:tab_bor_info_filter: Z303-NAME Z304-TELEPHONE
转换机制- filter– 2 在bor-info接口里增加参数 &filter_data=<file_name> : http://202.198.141.86:8992/X?op=bor-info&id=ID51&cash=O&filter_data=tab_bor_info_filter&session=UU3H9FRDJJUXER7DJCALEU1285HALFKLL7ENIGU9QD28XU2KKE 这样只有读者姓名、电话会显示了:
内容 X-server 简介 常用 X-Services样例: 入门 权限控制 转换机制(Translate) 书目相关接口 读者相关接口 馆员认证接口 更新读者接口 Things we will be covering in the next hour
书目检索、排序与显示 - 1 查找find http://202.198.141.86:8992/X?op=find&request=wti=oracle&base=whu01&session=UU3H9FRDJJUXER7DJCALEU1285HALFKLL7ENIGU9QD28XU2KKE Request参数:检索式 Base 参数:检索库 返回 Set_number 结果集名称 No_records 命中记录数 No_entries 可显示记录数
书目检索、排序与显示 - 2 排序sort-set http://202.198.141.86:8992/X?op=sort_set&library=whu01&set_number=000081&sort_code_1=01&sort_order_1=D&sort_code_2=04&sort_order_2=A&session=UU3H9FRDJJUXER7DJCALEU1285HALFKLL7ENIGU9QD28XU2KKE sort_code 来自书目库的tab_sort 参数表,通常是 01 年份 02 著者 03 题名 04 索书号/分类号
书目检索、排序与显示 - 3 显示 present http://202.198.141.86:8992/X?op=present&base=whu01&set_number=000081&set_entry=000000001&session=UU3H9FRDJJUXER7DJCALEU1285HALFKLL7ENIGU9QD28XU2KKE 显示一条 http://202.198.141.86:8992/X?op=present&base=whu01&set_number=000081&set_entry=000000001-00000010&session=UU3H9FRDJJUXER7DJCALEU1285HALFKLL7ENIGU9QD28XU2KKE 显示多条
书目检索、排序与显示 - 4
显示书目的馆藏状态 馆藏状态 circ_status http://202.198.141.86:8992/X?op=circ_status&sys_no=000610238&library=WHU01&session=UU3H9FRDJJUXER7DJCALEU1285HALFKLL7ENIGU9QD28XU2KKE
读者相关接口 - 1 读者认证 bor-auth: http://202.198.141.86:8992/X?op=bor-auth&id=ID51&verification=1234&library=WHU50&session=UU3H9FRDJJUXER7DJCALEU1285HALFKLL7ENIGU9QD28XU2KKE 如果密码正确,返回读者的z303,z304,z305信息 否则返回 <error>Error in Verification</error>
读者相关接口 - 1 读者认证 bor-auth-valid: http://202.198.141.86:8992/X?op=bor-auth_valid&id=ID51&verification=1234&library=WHU50&session=UU3H9FRDJJUXER7DJCALEU1285HALFKLL7ENIGU9QD28XU2KKE 比bor-auth接口增加了检查读者有效性,在tab_check_circ中定义: BOR-AUTH check_circ_1_a BOR-AUTH check_circ_1_c_a 如果密码正确,且读者证卡有效,返回读者的z303,z304,z305信息 否则返回 <error>验证错误</error> 或 <error>不是有效读者</error>
读者相关接口 - 2 读者信息 bor-info: http://202.198.141.86:8992/X?op=bor-info&id=ID51&library=WHU50&session=UU3H9FRDJJUXER7DJCALEU1285HALFKLL7ENIGU9QD28XU2KKE 可以不用密码,返回读者的z303,z304,z305以及外借、预约、现金事务等信息 可以通过参数过滤是否显示相关信息 Loan=N 不显示外借 Hold=N 不显示预约 Cash=O 只显示未完成的现金事务 Format=1显示详细读者信息,包括多个地址信息和多个ID信息
馆员认证 馆员认证user-auth http://202.198.141.86:8992/X?op=user-auth&staff_user=TEST&staff_pass=TEST&library=WHU50&session=UU3H9FRDJJUXER7DJCALEU1285HALFKLL7ENIGU9QD28XU2KKE 如果认证成功,返回账户基本信息
更新读者记录 - 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格式的详细读者信息
更新读者记录 - 2 Xml_full_req 文件内容:
参考文档 ALEPH 18[1].01 X-Services.pdf Aleph 500 X-Services -- LOCALIZATION.doc Aleph 500常用 X-Services列表.doc 文档中心
Lei.zhou@exlibrisgroup.com