17
Graphic Artist makes APIs
I always wanted to mess around with programming. I studied International Relations and right after that, at the beginning of my working days, I started as Logo designer, continued as a UI designer, then moved to front-end development and ultimately I ended up being a graphic artist for a board game company called Final Frontier Games. Obviously, zero coding at the current workplace. Although I really enjoy working my current job, I needed to find a way to keep this feeling of satisfaction when I'm coding.
During my spare time while working as a graphic artist, I've been tinkering and creating few side projects in Python / Django. These are basically few tools that are supporting some of the internal processes of my company, such as board game rating tracking (I guess I will release an API for this soon), crowdfunding backers management and so on.
While working on these, it should be obvious that I watched a ton of tutorials and tips&tricks videos related to the technologies that I've been working with, subscribed to several YouTube video channels that were truly helpful and interesting.
Although, I am trying to focus on one particular thing at a time, and stay away from the clutter which YouTube will provide once you start watching videos on a particular topic, I started getting recommendations for different technologies, programming languages, frameworks and so on.
Lately, I've been getting video recommendations for Node.js and API creation, and although from different creators, the most of them were quite repetitive - here is Node.js, here is how you can build an API, and here is how you can publish it on services such as RapidAPI.
Even though Python and Django are of my primary interest for quite some time now, these videos kinda kindled my curiosity and I gave it a try.
So far, there are two APIs that I have created and I am sharing both of them here, in case any of you find them useful in your future endeavors.
This API have three endpoints available and these endpoints will return the most recent and the most significant earthquakes, as well as the testimonies by witnesses for a particular earthquake. The returned data by this API is based on the data of European-Mediterranean Seismological Centre.
This endpoint will return the most recent earthquakes. Here is a response example:
{
"event_number":"1064854"
"link":"https://www.emsc-csem.org/Earthquake/earthquake.php?id=1064854"
"date":"2021-11-20"
"time":"22:42:58.6"
"time_ago":"27min ago"
"latitude":"6.69 N"
"longitude":"126.65 E"
"depth":"100 km"
"magnitude":"4.9"
"magnitude_type":"Mw"
"location":"MINDANAO, PHILIPPINES"
"testimonies":""
"testimonies_link":""
"updated":"2021-11-20 23:01"
}
...
This endpoint will return the most significant earthquakes. Here is a response example:
{
"time":"22:06:40"
"timezone":"UTC"
"time_ago":"1hr 03min ago"
"location":"NEAR COAST OF ECUADOR"
"region":"Guayas, Lomas de Sargentillo"
"nearest_city":"22 km WSW of El Triunfo (Ecuador) Local time: 17:06"
"magnitude":"4.6"
"effects":"Moderate M4.6 felt earthquake (sismo) shakes Near Coast of Ecuador."
}
...
This endpoint will return all testimonies (if available) for a particular earthquake. Event number is available in Get Recent Earthquakes endpoint's response, and this event number can be used as earthquake id (eqID) for this endpoint. For example - /testimonies/1064848
Here is a response example:
{
"witness_location":"El Triunfo (Ecuador) (17 km E from epicenter)"
"testimony":"Algo fuerte.Comenzó levemente."
},
{
"witness_location":"Santa Lucía (Ecuador) (24 km SE from epicenter)"
"testimony":"Leve"
},
{
"witness_location":"Guayaquil (Ecuador) (29 km SE from epicenter)"
"testimony":"Fuerte pero corto"
},
{
"witness_location":"Eloy Alfaro (Ecuador) (32 km E from epicenter)"
"testimony":"Short & weak"
},
{
"witness_location":"Eloy Alfaro (Ecuador) (33 km SE from epicenter)"
"testimony":"Short but shaky"
},
{
"witness_location":"Píllaro (Ecuador) (194 km NE from epicenter)"
"testimony":"Se sintio levemente a quien Ambato - 300 km de Guayaquil."
}
...
Link to the API at RapidAPI
This is actually, the first API that I have created by using Node.js. This API have 2 endpoints and 16 categories available. These endpoints will return the most recent data for the popularity of ongoing crowdfunding project campaigns. The returned data by this API is based on the data of the daily hot list at Kicktraq.
This endpoint will return all of the projects of various categories, which are available on the daily hot list.
Here is a response example:
{
"rank":"1"
"title":"Hegemony: Lead Your Class to Victory"
"link":"https://www.kicktraq.com/projects/hegemony/hegemony-lead-your-class-to-victory/"
"image":"https://ksr-ugc.imgix.net/assets/035/527/071/e4dc3bbba26799e02209dee1efa34f6e_original.jpg?ixlib=rb-4.0.2&crop=faces&w=160&h=90&fit=crop&v=1636497223&auto=format&frame=1&q=92&s=800530a016f2218fa1fd7d44b68f183b"
"category":"Games"
"subcategory":"Tabletop Games"
"goal":"€15,000"
"funding_percentage":"2888%"
"list_place_changes":""
"new_project":false
"time_left":"2 weeks to go"
},
{
"rank":"2"
"title":"Dutch Resistance: Orange Shall Overcome!"
"link":"https://www.kicktraq.com/projects/orange-shall-overcom/dutch-resistance-orange-shall-overcome/"
"image":"https://ksr-ugc.imgix.net/assets/035/463/425/5e256d3b79760cc808f09938bd6618a4_original.png?ixlib=rb-4.0.2&crop=faces&w=160&h=90&fit=crop&v=1635976475&auto=format&frame=1&q=92&s=575ba6de5ba140c682da6c6e95a10dd2"
"category":"Games"
"subcategory":"Tabletop Games"
"goal":"€8,800"
"funding_percentage":"217%"
"list_place_changes":""
"new_project":false
"time_left":"3 days to go"
...
}
This endpoint will return the projects from specific category, which are available on the daily hot list. To retrieve a data for this endpoint, the following categories are available:
- art
- comics
- crafts
- dance
- design
- fashion
- film-video
- food
- games
- journalism
- music
- photography
- publishing
- music
- technology
- theater
Here is a response example for Games category:
{
"rank":"1"
"title":"Hegemony: Lead Your Class to Victory"
"link":"https://www.kicktraq.com/projects/hegemony/hegemony-lead-your-class-to-victory/"
"image":"https://ksr-ugc.imgix.net/assets/035/527/071/e4dc3bbba26799e02209dee1efa34f6e_original.jpg?ixlib=rb-4.0.2&crop=faces&w=160&h=90&fit=crop&v=1636497223&auto=format&frame=1&q=92&s=800530a016f2218fa1fd7d44b68f183b"
"category":"Games"
"subcategory":"Tabletop Games"
"goal":"€15,000"
"funding_percentage":"2888%"
"list_place_changes":""
"new_project":false
"time_left":"2 weeks to go"
},
{
"rank":"2"
"title":"Dutch Resistance: Orange Shall Overcome!"
"link":"https://www.kicktraq.com/projects/orange-shall-overcom/dutch-resistance-orange-shall-overcome/"
"image":"https://ksr-ugc.imgix.net/assets/035/463/425/5e256d3b79760cc808f09938bd6618a4_original.png?ixlib=rb-4.0.2&crop=faces&w=160&h=90&fit=crop&v=1635976475&auto=format&frame=1&q=92&s=575ba6de5ba140c682da6c6e95a10dd2"
"category":"Games"
"subcategory":"Tabletop Games"
"goal":"€8,800"
"funding_percentage":"217%"
"list_place_changes":""
"new_project":false
"time_left":"3 days to go"
}
...
Although the ideas for these APIs are not that extraordinary, I had real fun while creating them and hopefully you will find some use of them.
Here is a link to my RapidAPI profile, in case you want to check for extraordinary APIs in the future :)
Thanks for reading so far. Stay safe!
17