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]