--- layout: post date: 2015-02-19 13:13 comments: true categories: --- # CampusBooks.com API 使用記錄 好久不見!忙裡偷閒的來篇小記,重理思路再出發。 近一兩個月都在都在處理跟書相關的事,畢竟也算半個書商了,在書籍資料搜尋上,和大家介紹個好站。 ## 簡介 [CampusBooks.com](http://www.campusbooks.com/),據說也是做 SEO 的公司起家,透過此網站,你可以方便的搜尋各類教科書的資料,書名作者 isbn 都基本,還可以直接顯示在各大書店價錢: <!--more--> ![螢幕快照 2015-02-19 下午9.17.53.png](https://user-image.logdown.io/user/1128/blog/1112/post/255688/ELEkkxHRTyZG68ICOkhQ_%E8%9E%A2%E5%B9%95%E5%BF%AB%E7%85%A7%202015-02-19%20%E4%B8%8B%E5%8D%889.17.53.png) Google 得知他也是有[開放 api 的](http://www.campusbooks.com/company/api3_documentation.php),只是要合作才能申請 API key,想想也沒美國時間,就 inspect 了一下他的網站,發現十分工整 rest url: ![螢幕快照 2015-02-16 下午2.55.17.png](https://user-image.logdown.io/user/1128/blog/1112/post/255688/iMXYb7oGQmSFYrw7ny9v_%E8%9E%A2%E5%B9%95%E5%BF%AB%E7%85%A7%202015-02-16%20%E4%B8%8B%E5%8D%882.55.17.png) 就直接拿 api key 來用了哈哈。 ```shell SITE_API_KEY = PA52HnTGaTSyizTOq4j1 ``` ## API 對照了網路上僅存的[第三版 api document](http://www.campusbooks.com/company/api3_documentation.php) 看,先列出幾個基本的,有需要再慢慢找啦: ### 透過 isbn 拿書資料 ```shell GET http://api2.campusbooks.com/13/rest/bookinfo?key=API_KEY_HERE&isbn=xxxxxxx&format=json ``` 可以把 json response 打開,否則預設是 xml: ``` &format=json ``` 範例結果: ```json { "response": { "status": "ok", "version": "13", "label": { "plid": "0", "name": "CampusBooks.com", "website_id": "0", "website_name": "CampusBooks.com" }, "page": { "name": "books", "f": "search", "books": { "page": 1, "limit": 1, "results_returned": 1, "total_pages": 1, "total_results": 1, "book": [ { "isbn10": "1111570051", "isbn13": "9781111570057", "author": "", "binding": "Paperback", "edition": "", "image": { "width": 60, "height": 75, "image": "http://ecx.images-amazon.com/images/I/51XzAECQ6xL._SL75_.jpg" }, "msrp": 97.62, "pages": "", "publish_date": "", "publisher": "Example Product Manufacturer", "rank": 1603132, "rating": 0, "title": "Brief Applied Calculus. James Stewart, James Stewart, Dan Clegg" } ] } } } } ``` ### 拿書價格 把 price field 打開 ```shell GET http://api2.campusbooks.com/13/rest/bookinfo?key=API_KEY_HERE&isbn=xxxxxxx&format=json&f=prices ``` 輸出有點長就不貼了。 ## 小結 根本沒長到需要寫小結啊(飛踢) 如果沒差舊版的 API 文件太多,其他還有 search / bookprices 可以用,不過我沒有用到就暫時不寫了。 基本上 campusbooks 的書是非常齊全了,他們有從 1998 開始的資料,[OpenLibrary](https://openlibrary.org/) 有些找不到的書,這裡都找的到;順帶一提,OpenLibrary 也有好用的 api,也有 ruby gem,就單本書的資料上會比 campusbooks 更齊。 新年第一篇文,就祝大家新年快樂啦!