swapi icon indicating copy to clipboard operation
swapi copied to clipboard

Update plan

Open Juriy opened this issue 3 years ago • 6 comments

Hello friends!

I'd like to apologize to you all for not taking enough care of swapi.dev during last year. Work projects being in the top of the list together with life-related aspects never allowed me to dedicate attention that this project deserves.

Another aspect that was making it more difficult is tech stack: Python 2 and Django 1.x... say I was super happy when I managed to properly deploy it, and it was handling the load well (it is serving more than 1000 API requests per second in peak).

However I never properly looked inside the project or took an effort to bring new conent or features that all API enthusiasts deserve and for that I scincerely apologize.

Now back to the constructive aspects of this post. I plan to resume my involvement in this project here are the changes and features that I plan for the near future. Good news, the first task is already done :)

  1. Keeping SWAPI more accessible and easier to deploy on your environment. With help of @tribalspirit we've Dockerized an application and the image is now available on DockerHub. Instructions how to use it will soon follow, but it boils down to:
> docker run -d -p 8000:8000 juriy/swapi:latest
> curl -L localhost:8000/api/people/1/
  1. New content. As SW saga continues there are more exciting characters, planets and spaceships to include. This doesn't seem like a lot of work, so I'll start updating DB.

  2. Platform refresh. Python 2 and Django 1.7 are not great in 2021. There's a PR from @leonidpodriz who dedicated lots of effort to updating it to a modern stack. One thing to keep in mind is that project is a very good candidate to become "cloud native" - so serverless (and Django-less) approach is also on the radar.

  3. Updating API schema and introducing new ways to access APIs like GraphQL. This one is tricky. On one hand it would be great to extend and refresh API, on the other hand... there are literally thousands of code examples in internet relying on existing API format. Last thing we want is to break those accidentally. Hence the current "classic" version will remain unchanged (except for the new data). An approach "going forward" would be to version API. Hey, this is another concept that API enthusiasts might want to learn about, why not killing two birds with one stone!

  4. Decoupling UI from API and refreshing UI. Self-explanotary: it would be nice to have a bit more modern landing page. Would also be great to add Swagger / OpenAPI docs to this API.

As you see there is months worth of work and I do not promise doing it all in one go, but rather to have a steady stream of updates.

Juriy avatar Jun 16 '21 19:06 Juriy

Great :D. This is a neat project and I'm currently doing a coding project for a company using this API. Thanks for setting this up.

nachtien avatar Jun 16 '21 22:06 nachtien

Awesome project! Cheers!

One question though. Is there a maintenance going on with swapi.dev apis at the moment? I was trying out the api the first time and am getting a throttled request already.

In any case, the docker solution is very neat!

themobilecoder avatar Jun 18 '21 01:06 themobilecoder

@themobilecoder thanks for heads up, recent updates to deployment broke throttling. I disabled it for now, let's hope I'm not DDoS-ed 🙂

Juriy avatar Jun 18 '21 16:06 Juriy

Hi thank you very much for your project. We use it with our students for them to download some data and learn to work with json. It's a great and fun resource for them ❤️

Just one question, do you have any CDN cache deployed in front of your app? I guess that a lot of the data is never changing so it would make sense to cache most of the requests. I am preparing a new lab and the API is responding a really slowly.

Thanks ❤️

petrvecera avatar Sep 20 '23 13:09 petrvecera

Hi thank you very much for your project. We use it with our students for them to download some data and learn to work with json. It's a great and fun resource for them ❤️

Just one question, do you have any CDN cache deployed in front of your app? I guess that a lot of the data is never changing so it would make sense to cache most of the requests. I am preparing a new lab and the API is responding a really slowly.

Thanks ❤️

I would like to bring to attention my own Open Source swapi.info. A partially feature-parity take on SWAPI which solely utilizes Cloudflare & Cloudflare Pages infrastructure to provide blazing fast, non rate-limited, JSON-only APIs with excellent uptime guarentees and status monitoring to rapid reactions.

Built as a giveback to the community to provide an data explorer and API service for the new enterents in our community and for teachers to have a visual aid always available at their disposal.

SivaramPg avatar Apr 29 '24 19:04 SivaramPg

Hi thank you very much for your project. We use it with our students for them to download some data and learn to work with json. It's a great and fun resource for them ❤️ Just one question, do you have any CDN cache deployed in front of your app? I guess that a lot of the data is never changing so it would make sense to cache most of the requests. I am preparing a new lab and the API is responding a really slowly. Thanks ❤️

I would like to bring to attention my own Open Source swapi.info. A partially feature-parity take on SWAPI which solely utilizes Cloudflare & Cloudflare Pages infrastructure to provide blazing fast, non rate-limited, JSON-only APIs with excellent uptime guarentees and status monitoring to rapid reactions.

Built as a giveback to the community to provide an data explorer and API service for the new enterents in our community and for teachers to have a visual aid always available at their disposal.

We have also build our own open source version to be able to query the data without delays and limitations https://swapi.profiq.com/

petrvecera avatar Apr 30 '24 07:04 petrvecera