Phase 1 - Fetch

Using Fetch for an API call

When I began designing my web application, the first thing that I decided on was the desire to have cat photos front and center for anyone who uses the web application. Not only did I want a cat image, I wanted a variety of random cat images.


In this blog I will review how to create a simple fetch request to a public API that will allow you to add adorable cats to your webpage.


You can start in a few different places, but for me the most logical place to start was my HTML file and add a container within my body that will store my cat photo on the page:

Since the images were random, I created a div “container-fluid” to adjust the size of the container as needed.


I then went about adding some CSS design elements to position the cat photos, add a border, and prevent the photos from being too large proportionate to other elements on the page.

lastly came the exciting part - a fetch request function! For this, it took just a little bit of googling to find that there is a fantastic API that can be used to generate random cat images - a new cat at every refresh, at http://api.thecatapi.com/v1/images/search.

My fetch request started with a function name “fetchCatImage”:

function fetchCatImage() {

}

From here, I created a value for the image:

function fetchCatImage() {

let image = document.getElementById(“cat-image”)

}

Now that I’ve pinpointed the element in my HTML file that i want to load a cat image into, I can now complete the fetch request. It starts with actually fetching the data from the API:

function fetchCatImage() {

let image = document.getElementById(“cat-image”)

fetch(‘http://api.thecatapi.com/v1/images/search’)

}

The way a fetch request works, is I send the fetch request and data is returned. Now I must tell the function what to do with that data:

function fetchCatImage() {

let image = document.getElementById(“cat-image”)

fetch(‘http://api.thecatapi.com/v1/images/search’)

.then(res => res.json())

}

This step might seem a bit confusing, but it’s not too complicated. “.then” just means, after I get that data back, then I want to do something with that “res” (response). The text on the other side of the “=>” is the function describing what I want done - I want that “res” to be made into JSON-formatted data.

the next step is to do something WITH that recently acquired JSON data:

function fetchCatImage() {

let image = document.getElementById(“cat-image”)

fetch(‘http://api.thecatapi.com/v1/images/search’)

.then(res => res.json())

.then(json => image.src = json[0].url)

}

That’s right - we want to source our image from the first image that comes up in the JSON data (this API only sends back one at a time, but always a new random one).

And just like that - we have our full fetch request and elements to beautifully present our users with a cute adorable freaking kitty cat!

Previous
Previous

Phase 3 - Seeding Ruby Application Using Faker

Next
Next

Phase 2 - useEffect