Best practices for http-based API integration?

Hi all–I’m very new to HA, so apologies if this has been answered elsewhere or is a dumb question, but I have searched around.

Years ago, I built a simple controller for our garage doors and driveway gate using Raspberry Pi Pico Ws. The garage openers are of the simple “short these two terminals to trigger” design, and our gate has a similar setup, so it’s just Picos connected to reed switches and relays. The master Pico in the garage runs a very simple webserver that generates an HTML page that shows the status of the doors and gate and allows for controlling them. It also sends alerts (via Slack webhooks, but I’d like to move to HA alerts eventually) if they’ve been open for too long, allows for opening for a specific amount of time, etc. It’s all very simple http-api-based stuff (e.g. to open the gate for 15 minutes, you’d hit http://192.168.10.23/eastgate-open?d=15 which is of course abstracted away by the web page itself, but that’s what’s happening under the hood).

In any event, I’m in the process of integrating these into HA. I’ve already got some automations that use the rest api function, which works great (e.g. when I’m arriving home, it’ll open the gate for one minute, open my garage door, unlock the door leading into the home, and disarm our alarm). Works brilliantly.

Where I need some guidance is how to properly integrate these into HA as actual devices that broadcast their state, show up in my dashboard, etc. I can think of a hundred ways to do this, from something as simple as creating webhooks in HA that my Picos hit when their states change to using something like MQTT.

Is there any good documentation about what works best or is most reliable? I don’t need a walkthrough as much as a conceptual overview of how best to build custom integrations with HA. Ideally, I’d keep things more-or-less http-based, since adding something like MQTT into my existing codebase is a lot more work than just having them send a POST when the states change.

What do you all think? Thanks in advance, and thanks to the developers and volunteers for making such great software!