top | item 40114752

(no title)

ApeTheRick | 1 year ago

GET requests should be idempotent - browsers will call them without explicitly asking to, if bookmarked etc. Reminds me of the old story here

https://twitter.com/rombulow/status/990684453734203392

Maybe consider changing setting the height to a POST request

discuss

order

kn100|1 year ago

Hehe, you're not the first person to have suggested this, and I was wondering how quickly the HN crowd would find and point it out. You're definitely right, but to explain why it is the way it is right now:

* I just didn't want to mess about with postman or curl or whatever in order to test, much easier to just issue a get request by visiting a url in the browser

* I'm going to be ripping the HTTP support out shortly and replacing it with MQTT support so it can more cleanly integrate with my HomeAssistant setup. The HTTP stuff was mostly just the fastest way I could get something approximating what I was looking for.

I definitely agree though, this being a `GET` request is offensive :P

exchemist|1 year ago

When I'm making a throwaway interface like this, I write the GET handler to return a super-minimal page with an unstyled form having method=POST and the couple of inputs required. The POST handler actions the request and redirects to itself to GET the form again - browsers are so forgiving of incomplete/incorrect markup and the base browser style-sheet screams "this is a prototype, don't judge it!" to anybody you show it to.

To be clear I'm just talking about the web interface, not implying the whole project is throwaway - on the contrary it looks like a lot of work (and a lot of fun :) ) kudos!

ApeTheRick|1 year ago

Makes sense - I had visions of you sat at your desk, opening a new tab and it suddenly turning back to the standing position!

Thanks for the post though, a fun read!

Filligree|1 year ago

> This, kids, is why GET requests should be idempotent.

I'm not sure I understand. What is this referring to?

ApeTheRick|1 year ago

I think the twitter link is messed up, I have to scroll up to see the whole thread.

Edit: Fixed the link now.