• Olap@lemmy.world
    link
    fedilink
    arrow-up
    6
    ·
    5 个月前

    If only that were true. They are intimately connected and to pretend otherwise is laughable to me

    • porkloin@lemmy.world
      link
      fedilink
      arrow-up
      7
      ·
      5 个月前

      What do you mean? You can literally run GraphQL without HTTP. This isn’t just a GraphQL-ism, gRPC also does it https://grpc.io/docs/guides/status-codes/

      I understand that most people use GraphQL over HTTP and that from a developer perspective you’d rather have HTTP status codes like every other REST API. To which I’d say, why don’t you just use REST instead?

      There are a bunch of legitimate reasons why a clean separation of transport layer and application layer makes sense - you just aren’t using them so it feels like an arbitrary frustration to you.

      Have you ever run an application like a golang REST API behind an envoy or nginx proxy or load balancer and gotten an HTTP status 500 back and wrongly assumed it was coming from your application/golang code, only to later find it was a problem at the proxy or load balancer? If so, you’ve experienced the misdirection of combining transport and application layer being forced to share a status field. This isn’t a trivial example - time is wasted every day by developers misdiagnosing errors originating from transport as application errors, and vice versa.

      You might not like it, but separating them IS smart design.

      • Olap@lemmy.world
        link
        fedilink
        arrow-up
        2
        arrow-down
        1
        ·
        5 个月前

        Logs, logs, logs, you’ll pour over logs anyway. Hands up anyone who has run GraphQL over anything but http? Won’t be many. And then another show of hands please: who’s written a basic request using http tooling instead? Bet there’s tons!

        They threw away loads of tooling for the sake of vanity imo