DEV Community

Cover image for The All-in-One Fake API for you
carban
carban

Posted on • Edited on

The All-in-One Fake API for you

Introducing FooApi

I am excited to announce a personal project I’ve been working on: fooapi.com. The service isn’t 100% complete yet—some features are still in development—but I plan to share progress and updates with each new release. This project began with the idea of creating a single platform to access data on various topics through different methods. The platform provides realistic dummy data across several categories, which you can use to mock your projects and ideas.

You can find all the details in fooapi.com/docs

How to use it?

Currently there are two ways to fetch the data:

  1. REST endpoints
  2. GraphQL queries
  3. (Would you like gRPC?)

If you go to fooapi.com/playground you can practice and test your queries

Some useful examples

Here are some practical examples of how to use FooApi.

1) Do you want to create simple placeholder images? easy:

fooapi.com/imgmaker/700/500/ff0000/000000/foooo

Image Endpoint

With this endpoint, you can customize dimensions (width and height), background color, font color (Hex format), and add a custom message.

/imgmaker/:width/:height/:bg/:fn/:text
Enter fullscreen mode Exit fullscreen mode

More details in fooapi.com/docs/images

2) Do you want data to test your maps? just use:

fetch('https://fooapi.com/api/cities?limit=3')
  .then(res => res.json())
  .then(data => console.log(data))
Enter fullscreen mode Exit fullscreen mode

Dummy data in maps

The data for this category is real and not artificially generated because, in a real map, we should use actual coordinates, in case you’re wondering.

3) Something simple and useful is fetch a random user:

fetch('https://fooapi.com/api/users/rand')
  .then(res => res.json())
  .then(data => console.log(data))
Enter fullscreen mode Exit fullscreen mode

Response:

{
    id: "1",
    name: "John",
    lastname: "Doe",
    username: "JohnxDoe11",
    birthdate: "1990-01-01",
    age: 30,
    gender: "Male",
    phone: "+63 791 675 8914",
    email: "foo@example.com",
    country: "USA",
    height: 170,
    weight: 70
}
Enter fullscreen mode Exit fullscreen mode

4) Are you developing the next social media hit? check:

fetch('https://fooapi.com/api/comments')
  .then(res => res.json())
  .then(data => console.log(data))
Enter fullscreen mode Exit fullscreen mode

Response:

[
    {
        id: "1",
        comment: "Sunshine and sci-fi sounds like a perfect combo! Enjoy getting lost in your book ",
        reactions: 0,
        postId: "1",
        user: {
            id: "50",
            name: "John",
            lastname: "Smith",
            username: "SmiJohnxD100"
        }
    },
    {
        id:"2",
        comment:"Don't forget the sunscreen!  What sci-fi are you reading?",
        reactions:1,
        postId:"1",
        user:{
             id:"2",
             name:"Akira",
             lastname:"Von Trier",
             username:"alphaVonAkirax853"
          }
    }
    "28 more elements..."
]
Enter fullscreen mode Exit fullscreen mode

Now you are free to explore the data categories.

What do you think?

I’d love to hear your feedback! Remember, you can use this service to mock your apps, designs, models, etc. If you have ideas for new data categories or features, please share them in the comments.

Top comments (22)

Collapse
 
timrudy profile image
TimRudy

This is a great service. There are so many types of data to imagine - the first one I thought of is random text/quotes/thought-of-the-day/anything like that, that can be pulled from AI. Depends how many AI requests the host would have access to. Each of them uses electricity and compute, though.

Collapse
 
kherrera02 profile image
Kenneth C

Hey! Just wanted to share some friendly feedback - I ran a stress test on your API with 100 parallel threads over 3 mins (~50k requests) and noticed it handled everything like a champ! 🚀 While that's impressive, you might want to consider adding some rate limiting to protect against potential abuse. The API is super cool btw, loving how robust it is!
Keep up the great work! ✨

Collapse
 
carban profile image
carban

@kherrera02 thank you so much for your feedback, I really appreciate it. I did some load tests but not as extensive as yours, I will consider your advice!

Collapse
 
fyodorio profile image
Fyodor

Great project 👍 As @elpidaguy mentioned, if you have the source code available (that is if you plan to keep it open and free), would be interesting to take a look and maybe have the possibility to roll it out locally and test, for instance.

Collapse
 
carban profile image
carban

Sounds good! I built FooApi with the idea of being a free tool for developers. I'm currently finishing some features, and after that, I'll be able to share the code with the community. If you have new ideas or contributions let me know.

Thank you

Collapse
 
leviarista profile image
Leví Arista

Awesome!! Keep going 💪

Collapse
 
chrisb34 profile image
Chris Backhouse

This is a great idea. I can imagine using this in a number of prototypes. I look forward to it being open source!

Collapse
 
khaja_hussain_db1f84efe83 profile image
Khaja Hussain

very helpful when we work on sample projects or POC.

Collapse
 
kamalmost profile image
KamalMostafa

good idea, better if you put OAuth for some of them just to let ppl try it out.

Collapse
 
carban profile image
carban

Thank you! For now, the endpoints don't require authentication, but adding that possibility is interesting.

Collapse
 
ciphernutz profile image
Ciphernutz

Worth reading.

Collapse
 
dchif profile image
Daniel Chifamba

This looks cool 😎

Collapse
 
latzo profile image
Marco Platzer

Great work, thanks for sharing!

Some comments may only be visible to logged-in visitors. Sign in to view all comments.