DEV Community

Brittany
Brittany

Posted on

4

Day 72 : #100DaysofCode - Still Trying To Get API To Work

Today I focused on my photo application again. I am still trying to figure out exactly how to implement my api and where to put my api calls for my application. The goal is to have a picture and a quote show under the photo and a user to be able to add the picture and quote to their page.

So far I was able to implement what I learned about api calls during my cli project into this project. To get started, I am using two free apis. quotes.rest and unsplash .

I just wanted to see if I could make an api call today and luckily I was able to! I created a photos controller and within the photos#index I added the following code:

class PhotosController < ApplicationController
    def index 
        @photo = "https://source.unsplash.com/random"

        url = "https://quotes.rest/qod"
        uri = URI.parse(url)
        response = Net::HTTP.get_response(uri)
        res = JSON.parse(response.body)
        @quote = res["contents"]["quotes"][0]["quote"]
        author = res["contents"]["quotes"][0]["author"]
        category = res["contents"]["quotes"][0]["category"]
    end 
end
Enter fullscreen mode Exit fullscreen mode
The photo

@photo = "https://source.unsplash.com/random" holds the photo url for the views page.

The quote

@quote = res["contents"]["quotes"][0]["quote"] holds the quote! I made an Net::HTTP request to the api and was able to get the quote along with the author and category provided by the quotes.rest api. I know all of this is very messy and needs to be out of my controller BUT I am proud of myself that I was able to make two calls to an api and show it in my views like this:

<h1> This is photos index </h1>

<div class="cards">
<% 20.times do  %>
    <div class="card">
        <img src="<%= @photo %>" alt="random" >
        <br/>
        <p> <%= @quote %> </p>

    </div>
<% end%>
</div>
Enter fullscreen mode Exit fullscreen mode

This is the beginning of a beautiful friendship with rails and apis.

As always, thanks for reading!

Sincerely,
Brittany

Song of the day: (I was with my 1 year old nephew all day today and I love Disney haha)

Sentry image

Hands-on debugging session: instrument, monitor, and fix

Join Lazar for a hands-on session where you’ll build it, break it, debug it, and fix it. You’ll set up Sentry, track errors, use Session Replay and Tracing, and leverage some good ol’ AI to find and fix issues fast.

RSVP here →

Top comments (0)

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay