Ruby on Rails로 Google Books API 두드리기

모티프


책의 평론 사이트성(엄격히 다르지만 설명이 가볍다)을 조합으로 제작하고 있다.
책의 정보는 API를 통해 얻고, 책의 API도 많다.
책 검색 API 뭐가 제일 좋은지.
위의 글은 openbd를 추천하며 Google Books API를 사용하기로 결정했습니다.설치가 비교적 수월한 것 같습니다.(현재 어려움은 없음)
공식:
Google Books API - Google Developers
그리고 Rubby에서 Google Books API를 친 문서를 찾았지만, 찾지 못했습니다. 이것이 바로 이 글을 쓴 동기입니다.
Google Books API 및 Vuejs로 간단한 Book Finder app 만들기
[Pythhon3] Google Books API를 사용해 보십시오.
Google Books API에서 JSON 데이터를 가져와 jQuery로 처리

이루어지다


책에는 ISBN과 같은 주요 열쇠가 있다.
예: 9784839962227=>현장에서 사용한 Ruby on Rails 5 실습 가이드
예를 들어, Google Books API에서는 이 ISBN을 통해 다음 JSON을 사용할 수 있습니다.
https://www.googleapis.com/books/v1/volumes?q=isbn:9784839962227
ruby 2.6.5

ISBN에서 JSON으로 돌아가기

  def get_json_from_isbn(isbn)
    JSON.parse(Net::HTTP.get(URI.parse(
      "https://www.googleapis.com/books/v1/volumes?q=isbn:#{isbn}"
    )))
  end

인스턴스 변수에 JSON 정보 입력(예)

json = get_json_from_isbn(9784839962227)
@book = Book.new(
  author: json["items"][0]["volumeInfo"]["authors"][0],
  description: json["items"][0]["volumeInfo"]["description"],
  image_url: json["items"][0]["volumeInfo"],
  published_at: json["items"][0]["volumeInfo"]["publishedDate"],
  title: json["items"][0]["volumeInfo"]["title"],
)
JSON과 비교해 보면 내가 이미 책의 정보를 받았다는 것을 알 수 있을 것 같다.

서버측 루비가 API를 두드리는 이유는 무엇입니까?

  • 루비 말고는 잘 몰라서
  • 사용자가 책을 보내는 ISBN만 원하고 그 결과(책의 정보)를 만들지 않으려고 한다.
  • Google Books API에도 이 검색에 대한 API(아직 접촉하지 않음)가 있습니다.따라서 서버 측면에서 두드리면 충분하다.
  • 그리고 첫 문장

    추기


    기사를 썼지만 ISBN으로 때리는 건 좋지 않다고 생각해요.
    다음은 이유.
    1. ISBN이 API 정보로 들어오지 않는 경우도 있음
    2. ISBN은 13비트에 인덱스를 사용할 수 없음 (biginit를 사용하는 것 같음)
    3. 쓰기도 다양하다(예를 들어 9784774142357, 978-7741-44235-7 등)
    특히치명적이어서 주요 열쇠로서의 기능을 기대할 수 없다.
    Goole Books API에서는 각 책에 대해 다음 ID를 제공합니다.
    8rtiRwAACAAJ
    string을 사용하면 돼요. 저는 비교적 편해요.
    def url_from_id(googlebooksapi_id)
      "https://www.googleapis.com/books/v1/volumes/#{googlebooksapi_id}"
    end
    
    def get_json_from_url(url)
      JSON.parse(Net::HTTP.get(URI.parse(url)))
    end
    
    겸사겸사 URL 반환 논리와 json 반환 논리로 나뉘었습니다.
    이렇게 하면 검색을 하는 URL을 재사용할 수 있다.
    def url_from_keyword(keyword)
      "https://www.googleapis.com/books/v1/volumes?q=#{keyword}&country=JP&maxResults=20"
    end
    

    좋은 웹페이지 즐겨찾기