Slik får du Goodreads-rangeringer via API
For bokelskere som har en smak for en bestemt sjanger, vil de trolig sjekke ut en venns anbefaling enn å følge en bestselgerliste. Det er derfor Amazonas Goodreads er et bokmerket nettsted for ivrige lesere. Det er et sted hvor du kan finne en omfattende database med bøker, anbefalinger og anmeldelser av andre bokelskere.
Goodreads gir også en API for utviklere til få tilgang til dataene sine og videre tilpasse det som i vår søknad. I dag ser vi hvordan du henter Goodreads-bokrangeringer gjennom Goodreads API ved hjelp av ISBN eller International Standard Book Number, som senere kan brukes mens du viser bokinformasjon og lignende på nettstedet ditt.
For å begynne, enten logg inn eller registrer deg med et navn, e-post-ID og passord til Goodreads og gå til https://www.goodreads.com/api/keys (Link). Skriv inn et programnavn og firmanavn og generer API-nøkkelen din. Bekreft deretter kontoen din via e-posten mottatt i e-post-IDen du skrev inn.
Husk å sjekke ut utviklervilkårene for tjenesten for APIen. De har også en liste over API-metoder i API-siden, noen av disse metodene vil kreve OAuth-godkjenning, resten vil bare trenger utvikler nøkkel, som den vi ser på i dette innlegget.
Svarstypene for disse metodene varierer, det er enten bare i XML eller JSON, eller et alternativ å velge mellom disse to ved hjelp av format
parameter.
book.review_counts
er en Goodreads API-metode som henter all gjennomgangsstatistikken for en liste over ISBN-bokmerker. Reponsjonstypen er JSON. Forespørselsadressen er slik: https://www.goodreads.com/book/review_counts.json .
Det tar fire parametere:
nøkkel
, som er utvikler nøkkelenISBN
- en array eller en enkelt kommaseparert streng av ISBNene til bøkene som vi vil ha omtalestatistikk forformat
- formatet av svaret (selv om det i all ærlighet er jeg ikke helt sikker på hvorfor denne eksisterer, siden svaret alltid kommer til å være i JSON. Planer for fremtidige implementeringer?)Ring tilbake
, funksjonen som vil pakke opp JSON-responsen
La oss ta de to bøkene; Hodet Første Java, Første utgave (ISBN: 0596009208) og JavaScript: The Good Parts, 1ste utgave (ISBN: 0596517742) og få sin anmeldelse statistikk. Forespørselsadressen er slik:
https://www.goodreads.com/book/review_counts.json?key=apikey&isbns=0596009208,0596517742
Og response
etter skjønnhet ser slik ut.
"bøker": "_ id": 231262, "isbn": "0596009208", "isbn13": "9780596009205", "ratings_count": 1842, "reviews_count": 3599, "text_reviews_count": 124, "work_ratings_count" : 2016, "work_reviews_count": 3943, "work_reviews_count": 136, "average_rating": "4.16", "id": 2998152, "isbn": "0596517742", "isbn13": "9780596517748", "ratings_count" : 4430, "reviews_count": 8921, "text_reviews_count": 363, "work_ratings_count": 4990, "work_reviews_count": 9821, "work_text_reviews_count": 381, "average_rating": "4.22"]
Hvis du vil ha vurdering av Hodet første Java, første utgave bok, det er i myJSON.books [0] .average_rating
. De RATINGS_COUNT
og reviews_count
Nøklene i objektene representerer det totale antall karakterer som er kastet og vurderinger gjort for den aktuelle utgaven av boken.
på samme måte , text_reviews_count
representerer de samlede tekst-bare vurderingene av den spesielle utgaven av boken. mens work_ratings_count
, work_reviews_count
og work_text_reviews_count
representerer totalt antall vurderinger, anmeldelser og kun tekstanmeldelser av alle utgavene.
Hvis du klikker på Ratingdetaljer for JavaScript: De gode delene (1ste utgaven) i Goodreads vil det vise dette.
Du kan bruke all den ekstra gjennomgangsinformasjonen hvis du vil eller bare vise en stjerneklassering for boken ved hjelp av gjennomsnittlig rangering
nøkkelverdi.
Merk: Ifølge API-dokumentasjonen, “Goodreads API gir deg full tilgang til Goodreads-eide metadata, men det gir deg ikke full tilgang til bokmetadata levert av tredjeparter som Ingram. Bokomslagsbilder, beskrivelser og andre data fra tredjeparts kilder kan utelukkes fordi vi ikke har lisens til å distribuere disse dataene via vår API.”
Når du har lest bokomslagene og beskrivelsene, kan du vise bokopplysningene noe som nedenfor.