Settings

Theme

JOAT API (Jack Of All Trades): A lazy lazy lazy developers API

joat.tools

3 points by simplecto a year ago · 6 comments

Reader

simplectoOP a year ago

Hey, I'm embarrassed to release this often, which is kind of the mantra around here, right?

Long story short is that I've decided to build an API service that wraps many of the most useful libraries and other services, even those "one-feature" SaaS offerings.

Be gentle, I'm sharing it to poke and critique.

I have some colleagues in F50 companies who asked to have a service like this deployed internally because of a number of bureaucratic reasons.

It is easier to get an internal API approved than it is to add it to the existing compiled/deployed software stacks. (weird, but it is what it is -- mostly about software supply chains)

Anyway, go look at the openapi spec and see that it is mostly just about scraping and format conversions (for now).

avipars a year ago

That is really cool, are you going to add rate limiting, API tokens, etc?

  • simplectoOP a year ago

    Thanks! -- It is in the backlog under "pending".

    If this thing takes off and becomes a thing then adding those will be fairly straight forward.

    • avipars a year ago

      Is the backend open source?

      I wanted to implement my own WHOIS service and it is more complex than it seems.

      • simplectoOP a year ago

        It is not (I'm not sure where it is going. But here is a gist of that file.

        This is in my requirements.txt

        git+https://github.com/richardpenman/whois.git@master#egg=python...

        And the meat of the file:

            import whois
        
            """Get WHOIS information for a domain."""
            try:
                domain_info = whois.whois(domain)
            except whois.parser.PywhoisError as e:
                return Response({"message": "Bad request", "details": str(e)}, status=400)
        
            if domain_info["domain_name"] is None and domain_info["registrar"] is None:
                return Response({"message": "Bad request", "details": f"{domain} not found or registered"}, status=400)
        
            return {"result": domain_info}

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection