SlideShare ist ein Scribd-Unternehmen logo
1 von 45
使用 Sierra API, DNA 初探
升級 Sierra 的動機
建立新功
能或服務
方便內部
作業
使用Sierra
API, DNA
誰來建立?
自建
•小型簡單
•需人力
•易修改
•要有時間
委外
•功能複雜
•需經費
•開發嚴謹
•專職專責
要建立與這些相關的新功能或服務
書目 館藏
讀者 流通
沒買額外功能的作法
• 人工倒出 reviews file 到外部資料庫。
• 以解析網頁,模擬讀者操作:
https://en.wikipedia.org/wiki/{Comparison_of
_HTML_parsers, Web_scraping}
• 用Expect、按鍵精靈,模擬館員鍵盤滑鼠。
• 抓取自動化主機作業系統裡的檔案:無官
方文件的自行摸索。
MILLENNIUM 時代可用的工具
Millennium 時代可用的工具
• Patron API / SSO / LDAP → 讀者資料及認證$
• Patron Update Web Service / Fine Payment
Web Service → 改讀者檔$
• My Millennium Web Service / AirPAC $
• SIP2 / Z3950 → 借還預約$ / 查書目
• 手動產生清單 / Load Schedule -> 手動更新
外部資料/半自動$
• 解析網頁 、簡單的借閱預約資料表
SIERRA DNA
Sierra DNA
• 必讀資源
• 了解有什麼資料可抓
• Sierra DNA 使用的系統編號需轉換
• 利用DNA製自用的API
• 用DNA的痛苦
• 必做:備份交易記錄
• 功用:各系統代號與中文對照
• bool_info有產生清單的SQL語法
瀏覽DNA:必讀資源
• https://techdocs.iii.com/
• 線上手冊裡的 Sierra Direct SQL Access
瀏覽DNA:了解有什麼資料可抓
Sierra DNA 使用的系統編號需轉換
Sierra DNA 使用的系統編號需轉換
利用DNA製自用的API
利用DNA製自用API:熱門預約
用DNA的痛苦
• 痛苦1:查 isbn 從 sierra_view.subfield_view:
iii=> select * from sierra_view.subfield_view
where content = '9789571052434';
Time: 107164.808 ms
• 痛苦2:跨表格查詢對應的各代號欄位
• 不會再變動的歷史記錄、少有變動的資料,
轉好各需欄位存成靜態格式。
備份交易記錄circ_trans
各系統代號與中文對照
Bool_info有產生清單的SQL語法
SIERRA API
了解使用Sierra API必讀資源
• 開發者網站:各相關文件及討論區
https://developer.iii.com/
• Sierra API Document:教學、詳細規格
https://sandbox.iii.com/docs/Content/titlePag
e.htm
• Sierra API developments:http://www.aiug.org/wp-
content/uploads/2017/02/sierra-api-developments-howard.pdf
• Sierra 手冊之 Creating Lists:
https://techdocs.iii.com/sierrahelp/Content/sgil/sgil_lists.html
https://sandbox.iii.com/iii/sierra-api/swagger/index.html
https://各校sierra主機/iii/sierra-api/swagger/index.html
Sierra API 常用三大類功能
只要會複製貼上就會用Sierra API
只要會複製貼上就會用Sierra API
只要會複製貼上就會用Sierra API
查詢哪天到期讀者列表自製API
列出讀者目前借出的項目
與Patron, Item, Bib 之間互相的關係,
全部只有以編號呈現,
而再查詢才能得完整的各筆資料。
簡單應用
簡單應用
• OPAC上的 javascript 外掛相關系統
• 以 Sierra API 模擬 PatronAPI 機制
• 更新密碼比 Patron Update Web Service 快速
• 可做出Load Schedule的同樣功能
• 簡易OPAC之查詢書目、續借、預約功能
• 透過LINE提供即將到期等通知
• 館員產生清單的語法變成線上即時的功能
OPAC上的 javascript 外掛相關系統
以 Sierra API 模擬 PatronAPI 機制
• API上patron validate的帳密驗證
只能以 barcode + pin 來驗證
• 通常是要讀者登入帳號並非以b來輸入
身分證號/學號 + pin
• 利用 patron 的 query 來查身分證號/學號
獲得其barcode再加上pin 來驗證。
更新密碼比Patron Update Web Service快速
• 利用 PUT /v3/patron/{id}
JSON內容為 {‘pin’ => newpin } 變更密碼
• 建立忘記密碼機制。
• 較新的 API 版本可以產生、刪除讀者帳號
可做出Load Schedule的同樣功能
• 產生單筆 MARC:GET /v3/bibs/{id}/marc
• 產生多筆 MARC:
GET /v3/bibs/marcs?id=1055267,1022212
• 下載產生的 MARC 檔:
/v3/bibs/marc/files/{filename}
• 可提供需更新上傳書目檔系統:discovery。
簡易從LINE續借功能
• 利用LINE Login得知其LINE之userId
• 利用SierraAPI的validate確認是讀者
• 透過LINE 的 Reply API 提供該讀者續借連結
LINE生活圈帳號的價格
http://at.line.me/tw/plan
透過LINE的Notify提供推送通知
總結與建議
對於未升Sierra
• Millennium 時代就有的一些需買的功能或者
限制,Sierra API 可以做得到,可考量升級
是否較好。
• Legacy API收費+維護費
Sierra API,DNA免費
• 原有的服務以解析網頁,要廠商改用DNA,
API來做,還需花時間了解及開發,一定會
要再收費
已升Sierra
• 不見得需要自己開發,但需要了解所謂的
開放,可做到哪些事。
• 交互利用 Sierra API, DNA 的特色來截長補短。
• 有資訊科系學校,可舉辦為圖書館寫第三
方程式開發活動:key, secret可產生給各組
使用。
將建立新服務者
• 廠商光看API的功能列表做出的功能有限,
要再加上產生清單的語法,衍生更多功能。
需非系統館員的經驗參與。
• Sierra API query 所需的 JSON 語法的各欄位,
需再配合 DNA 裡的資料。
• 系統的開放,怎麼與其他開放的平台做結
合,不見得要以做APP為目標。
• Sierra API仍持續進化著,可變更的在增加,
是否能完全取代舊有的API?
感謝聆聽

Weitere ähnliche Inhalte

Ähnlich wie 使用 Sierra API, DNA 初探

合久必分,分久必合
合久必分,分久必合合久必分,分久必合
合久必分,分久必合Qiangning Hong
 
探索 API 開發的挑戰與解決之道 | .NET Conf 2023 Taiwan
探索 API 開發的挑戰與解決之道 | .NET Conf 2023 Taiwan探索 API 開發的挑戰與解決之道 | .NET Conf 2023 Taiwan
探索 API 開發的挑戰與解決之道 | .NET Conf 2023 TaiwanAlan Tsai
 
Angular js twmvc#17
Angular js twmvc#17Angular js twmvc#17
Angular js twmvc#17twMVC
 
Artifacts management with CI and CD
Artifacts management with CI and CDArtifacts management with CI and CD
Artifacts management with CI and CDChen-Tien Tsai
 
JIRA Live DEMO 2020 v17
JIRA Live DEMO 2020 v17JIRA Live DEMO 2020 v17
JIRA Live DEMO 2020 v17Linktech
 
Java Build Tool course in 2011
Java Build Tool course in 2011Java Build Tool course in 2011
Java Build Tool course in 2011Ching Yi Chan
 
如何,高效利用搜索引擎+构建网络工具箱
如何,高效利用搜索引擎+构建网络工具箱如何,高效利用搜索引擎+构建网络工具箱
如何,高效利用搜索引擎+构建网络工具箱84zhu
 
Elastic stack day-1
Elastic stack day-1Elastic stack day-1
Elastic stack day-1YI-CHING WU
 
基于 Flink 和 AI Flow 的实时推荐系统
基于 Flink 和 AI Flow 的实时推荐系统基于 Flink 和 AI Flow 的实时推荐系统
基于 Flink 和 AI Flow 的实时推荐系统Dong Lin
 
美团前端架构简介
美团前端架构简介美团前端架构简介
美团前端架构简介pan weizeng
 
網站上線了,然後呢?
網站上線了,然後呢?網站上線了,然後呢?
網站上線了,然後呢?Kirk Chen
 
開放原始碼 Ch2.1 app - oss - oss ide (ver1.2)
開放原始碼 Ch2.1   app - oss - oss ide (ver1.2)開放原始碼 Ch2.1   app - oss - oss ide (ver1.2)
開放原始碼 Ch2.1 app - oss - oss ide (ver1.2)My own sweet home!
 
美丽说的架构发展与变迁 New
美丽说的架构发展与变迁 New美丽说的架构发展与变迁 New
美丽说的架构发展与变迁 New翀 刘
 
移动社交网络动态框架 李章晶
移动社交网络动态框架 李章晶移动社交网络动态框架 李章晶
移动社交网络动态框架 李章晶Shaoning Pan
 
Data Analyse Black Horse - ClickHouse
Data Analyse Black Horse - ClickHouseData Analyse Black Horse - ClickHouse
Data Analyse Black Horse - ClickHouseJack Gao
 
不會 Javascript 沒關係,用 Blazor 來解決前端需求 - 成為 Full Stack .NET 開發者吧 - .NET Conf 2020...
不會 Javascript 沒關係,用 Blazor 來解決前端需求 - 成為 Full Stack .NET 開發者吧 - .NET Conf 2020...不會 Javascript 沒關係,用 Blazor 來解決前端需求 - 成為 Full Stack .NET 開發者吧 - .NET Conf 2020...
不會 Javascript 沒關係,用 Blazor 來解決前端需求 - 成為 Full Stack .NET 開發者吧 - .NET Conf 2020...Alan Tsai
 
01 DevOps and Azure DevOps overview
01 DevOps and Azure DevOps overview01 DevOps and Azure DevOps overview
01 DevOps and Azure DevOps overviewAlan Tsai
 
GitLab—the new workbench
GitLab—the new workbenchGitLab—the new workbench
GitLab—the new workbenchtblanlan
 

Ähnlich wie 使用 Sierra API, DNA 初探 (20)

合久必分,分久必合
合久必分,分久必合合久必分,分久必合
合久必分,分久必合
 
探索 API 開發的挑戰與解決之道 | .NET Conf 2023 Taiwan
探索 API 開發的挑戰與解決之道 | .NET Conf 2023 Taiwan探索 API 開發的挑戰與解決之道 | .NET Conf 2023 Taiwan
探索 API 開發的挑戰與解決之道 | .NET Conf 2023 Taiwan
 
Angular js twmvc#17
Angular js twmvc#17Angular js twmvc#17
Angular js twmvc#17
 
Artifacts management with CI and CD
Artifacts management with CI and CDArtifacts management with CI and CD
Artifacts management with CI and CD
 
JIRA Live DEMO 2020 v17
JIRA Live DEMO 2020 v17JIRA Live DEMO 2020 v17
JIRA Live DEMO 2020 v17
 
Java Build Tool course in 2011
Java Build Tool course in 2011Java Build Tool course in 2011
Java Build Tool course in 2011
 
如何,高效利用搜索引擎+构建网络工具箱
如何,高效利用搜索引擎+构建网络工具箱如何,高效利用搜索引擎+构建网络工具箱
如何,高效利用搜索引擎+构建网络工具箱
 
Elastic stack day-1
Elastic stack day-1Elastic stack day-1
Elastic stack day-1
 
基于 Flink 和 AI Flow 的实时推荐系统
基于 Flink 和 AI Flow 的实时推荐系统基于 Flink 和 AI Flow 的实时推荐系统
基于 Flink 和 AI Flow 的实时推荐系统
 
美团前端架构简介
美团前端架构简介美团前端架构简介
美团前端架构简介
 
淺談後端概念
淺談後端概念淺談後端概念
淺談後端概念
 
網站上線了,然後呢?
網站上線了,然後呢?網站上線了,然後呢?
網站上線了,然後呢?
 
開放原始碼 Ch2.1 app - oss - oss ide (ver1.2)
開放原始碼 Ch2.1   app - oss - oss ide (ver1.2)開放原始碼 Ch2.1   app - oss - oss ide (ver1.2)
開放原始碼 Ch2.1 app - oss - oss ide (ver1.2)
 
美丽说的架构发展与变迁 New
美丽说的架构发展与变迁 New美丽说的架构发展与变迁 New
美丽说的架构发展与变迁 New
 
移动社交网络动态框架 李章晶
移动社交网络动态框架 李章晶移动社交网络动态框架 李章晶
移动社交网络动态框架 李章晶
 
Data Analyse Black Horse - ClickHouse
Data Analyse Black Horse - ClickHouseData Analyse Black Horse - ClickHouse
Data Analyse Black Horse - ClickHouse
 
不會 Javascript 沒關係,用 Blazor 來解決前端需求 - 成為 Full Stack .NET 開發者吧 - .NET Conf 2020...
不會 Javascript 沒關係,用 Blazor 來解決前端需求 - 成為 Full Stack .NET 開發者吧 - .NET Conf 2020...不會 Javascript 沒關係,用 Blazor 來解決前端需求 - 成為 Full Stack .NET 開發者吧 - .NET Conf 2020...
不會 Javascript 沒關係,用 Blazor 來解決前端需求 - 成為 Full Stack .NET 開發者吧 - .NET Conf 2020...
 
Idea13
Idea13Idea13
Idea13
 
01 DevOps and Azure DevOps overview
01 DevOps and Azure DevOps overview01 DevOps and Azure DevOps overview
01 DevOps and Azure DevOps overview
 
GitLab—the new workbench
GitLab—the new workbenchGitLab—the new workbench
GitLab—the new workbench
 

使用 Sierra API, DNA 初探

Hinweis der Redaktion

  1. 流程不會減少,期望能減少人工重覆的作業。
  2. 自建需人力,委外需經費 現有寫出會動的程式的門檻比以前低很多。
  3. 書目:固定 館藏:狀態變動 讀者:固定+狀態變動 流通:歷史固定、現況變動
  4. 0.不管是 Millinium, Sierra 1.無法即時,耗人力。 2.過去廠商的作法。 現許多程式工具在有關爬蟲議題。 ---- 以下與流通有關: 3.替代館員人工重複動作 4.Millinium裡有MySQL借出及預約記錄,及運作的記錄檔。
  5. 解析網頁+簡單的借閱資料庫
  6. https://developer.iii.com/ https://vendordocs.iii.com/ 多種圖書館第三方服務單一認證。若用資訊中心帳號就免。 從程式來快速修改帳號,與不同圖書館的聯盟、代借代還、與資訊中心帳號同步。 免登入圖書館系統得知借閱狀況、手機版網頁方案。 自助借書/代借代還/手機自助借書、編目常用,或薦購查是否已有。 定時不定時上傳書目更新資料 前頁所提 買上述的這些功能以幾十萬台幣計,還要加上每年的維護費,買愈多,每年付愈多。
  7. 定義各表格欄位的意義,及所用代號的意義 但需要帳號密碼才能登入 是否已有讓何廠商讀這頁?來幫助圖書館開發? 知道線上手冊有講DNA,不曾仔細看,才發現更方便的使用方法 有具體範例參考。
  8. 各種程式語言有pg套件。 自建可瀏覽分頁的網站自用
  9. Millinium 時有 MySQL 的借出記錄, 與OPAC上見到的編號一致。 DNA的資料表所記錄的編號全是系統所存, 與習慣直接查的 bibNum, itemNum, patronNum 不同,而需要做轉換。 是跨越多個表格。
  10. 參考線上手冊後,修正的做法
  11. 可能常會用到的,做好可即時Query的腳本,供給另外的網頁應用程式使用。 例如:即時預約架上清單、預約排行。 系統bib編號轉bibNum。 列出bibNum下面所屬的所有itemNum,所有的 ISBN。
  12. 還可運用在:預約架上清單、歷史借閱記錄排行,以patron, bib, item。
  13. 以ISBN來查詢是否有館藏 為例, 最快速的是用Z3950來查,但無法知書目編號 原本DNA的設計是設計給機器程式讀的,不是給人讀的。
  14. Circ_trans 約只存 7400 筆, 對我們館約14~18天,有所有借、還、續借、預約 之前在群組裡討論「歷史預約記錄怎麼查?」 在產生清單裡也做不到此事。 歷史預約排行可從這累積統計。 或者也可定時備份 hold 裡的資料, 因 hold 只存正被預約的記錄, 一被履約或取消後就沒記錄。 2013年底啟用 Sierra, 2014年11月才意識到此開始備份。
  15. 系統代號中文名稱的對照,如ptype,pcode3,mblock… 很少變動不需隨時查,可做成靜態檔案。 有變動時才更新那靜態檔案。
  16. 可從review file去下條件,參考其語法,修改成自己要的內容。
  17. 早期升上Sierra時,還得再升級才開始提供。
  18. 提供必讀文件的網址。 教學必讀,常常需要查詢法,其實與用什麼程式語言無關。
  19. 讀 Sierra API 各功能的文件 右上角的 key, secret 填上, 就可在各項目操作。 未升 Sierra 可申請測試的 key, secret 了解可操作的方式, 寫程式之前測試語法。 從2013年底用, 到這一兩年才知己校有swagger
  20. 目前用3.0 的功能,4.0看官方網站,patron增加更多功能 框起來是共同有的功能,其他所有獲得的結果都只是id的代號 藍色:簡單的查詢 綠色:較複雜的查詢、續借、驗證帳密、建立預約 橘色:修改資料 紅色:刪除
  21. 只要會在產生清單下指令, 就會使用 Sierra API
  22. 以前面提到利用 DNA 要用 ISBN 查館藏, 是件很痛苦的事, Sierra API只要參數填對就快速出現。
  23. 只要會Review File下指令產生清單, 就可以執行簡單或複雜的查詢。
  24. 以查詢某日所有借出館藏到期的讀者,SDA裡下這就可獲得。
  25. 複製貼上JSON的語法到 Patron, Item, Bib 的 query 的JSON欄位 可獲得分別當日到期的各清單 Load Schedule 在各欄位只能設定固定值, 無法設變數,
  26. 哪天到期的所有讀者編號列表, 也可以用大於、小於、位於兩日期之間等查詢。 如果要做 除了信件之外的到期逾期通知單, 就可快速獲得需要通知的清單。
  27. 獲得要通知哪日到期的讀者清單, 要再列出個別讀者的 借閱資料及各別 借出館藏到期日, 才知道要告知讀者哪本將到期。 如果要做出給讀者用的續借畫面、發送給讀者的通知, 要再查出個別書目資料才完整呈獻。
  28. Bib, item方面:以各欄位查詢書目館藏 讀者方面:查個人借閱、借閱歷史、續借、目前預約、新增預約、取消預約、讀者認證、修改讀者通訊資料、變更密碼
  29. 調閱系統、重置密碼。 自動上傳更新書目之MARC ISO檔 要做APP的基本需求功能
  30. 透過javascrip得知頁面裡的bibNum,獲取有哪些item,哪些item是屬於閉架書庫, 綁定各條碼欄為按鍵,帶itemNum到自建第三方服務主機,進行申請,就免複製貼上。
  31. Reply API 作為請求,使用者先發訊息,程式依訊息回應 Push API 為程式主動發送
  32. 在點選同意接受通知連動時,是已透過LINE login機制登入,已有此連線的 session 及獲知 userId, 只要在使用者點選連結參數中加入userId,即可綁定 token 及 userId 的對應。
  33. 對於未升Sierra: 1. Millennium 時代就有的一些需買的功能或者限制,Sierra API 可以做得到,可考量升級是否較好。 2.原有的服務以解析網頁,要廠商改用API來做,要再收費… 已升Sierra: 1.不見得需要自己開發,但需要了解所謂的開放,可做到哪些事。 2.交互利用 Sierra API, DNA 的特色來截長補短 3.有資訊科系學校,可舉辦為圖書館寫第三方程式開發活動:key, secret可產生給各組使用 要建立新服務者: 1.廠商光看API的功能列表做出的功能有限,要再加上產生清單的語法,衍生更多功能。需非系統館員的經驗。 2. Sierra API query 所需的 JSON 語法的各欄位,需再配合 DNA 裡的資料。 3.系統的開放,怎麼與其他開放的平台做結合,不見得要以做APP為目標。 4. Sierra API仍持續進化著,可變更的東西在增加,
  34. 自製這些API的API給廠商用,比叫廠商讀懂這些API怎麼使用 更能加速開發。