804
submitted 11 months ago* (last edited 11 months ago) by callmepk@lemmy.world to c/programmerhumor@lemmy.ml
  • This is Microsoft.
  • He returns Webhook success with a code 200 and plaintext 1.
  • He returns Webhook failure with a code 200 and a string tells its endpoint returned error 400.
  • the string didn't tell what exactly the error.
  • Don’t be like Microsoft.

EDIT: Got a few details wrong since this happens a few months ago and this meme used to be on r/ProgrammerHumor. Also the proof:

top 43 comments
sorted by: hot top controversial new old
[-] barrage4u@lemmy.world 62 points 11 months ago

It's hard when you hit an endpoint that hits another endpoint, because technically the first request IS a 200. No right or wrong way as long as they are consistent and document it clearly imo

[-] callmepk@lemmy.world 50 points 11 months ago

Now here is the fun part: they do not have a API documentation; they only have a very generic guide on how to setup webhook API

[-] candyman337@lemmy.world 41 points 11 months ago

Microsoft code docs are the literal worst

[-] masterspace@lemmy.ca 33 points 11 months ago

Lmao, Microsoft code docs are absolutely amazing compared to the undocumented bullshit I have to deal with at most companies that have rolled their own services.

[-] LetsGOikz@lemmy.ml 13 points 11 months ago* (last edited 11 months ago)

Shit, Microsoft docs are better than most other large companies with broadly used software even, not just random undocumented BS from smaller companies and products. In my experience, Microsoft's Xamarin docs are somehow often a better guide for Android development than Google's docs (good god are the official Android docs some of the hottest garbage that a company of Google's size and talent could put out), and I've yet to find a better general reference for any language or library than Microsoft's .NET documentation. I've seen a lot of people dunk on it for it's verbosity and/or "example bloat" but I love the length of their docs for breaking down different use-cases and giving examples of each, along with potential misuses and recommended alternatives.

That said, they do still have some garbage docs (like what OP is pointing out), but my general experience with their docs, especially for their larger/more mainstream products, has been surprisingly positive.

[-] candyman337@lemmy.world 9 points 11 months ago

Right but Microsoft isn't most companies, it's a SOFTWARE company. A multibillion dollar one at that. Compared to other even multimillion dollar companies, their docs are fucking atrocious

[-] masterspace@lemmy.ca 6 points 11 months ago

Not my experience at all. What specific docs are you looking at?

Because the .NET documentation and their Azure documentation are some of the best docs I've used and come across. Azure's doc certainly kick the crap out of GCP and AWS.

[-] candyman337@lemmy.world 3 points 11 months ago

Their azure documentation is mostly surface level. They make all those docs like they're talking to a user not a dev. They're limited AF when you're actually trying to deploy an app via a ci/cd pipeline

Microsoft365 docks have several articles that are fully depreciated and there is no disclaimer at the top about switching to new security standards or anything like that.

That's just off the top of my head, but there have been plenty more I've had the displeasure of using

[-] masterspace@lemmy.ca 3 points 11 months ago

Their azure documentation is mostly surface level. They make all those docs like they’re talking to a user not a dev. They’re limited AF when you’re actually trying to deploy an app via a ci/cd pipeline

Deploy to what? I've had no issues deploying to App Service from both Github actions and Azure pipelines and azure functions / static web apps were even easier.

[-] vfsh@lemmy.blahaj.zone 18 points 11 months ago

Microsoft docs in general are the worst. Can't tell you how many fucking dead links and straight up incorrect information I've come across on their official help articles

[-] candyman337@lemmy.world 10 points 11 months ago

Or deprecated documentation that has no indicator whatsoever that it's out of date

[-] SpaceNoodle@lemmy.world 8 points 11 months ago

I see you've never dealt with chip vendors

[-] candyman337@lemmy.world 1 points 11 months ago

Thankfully not

[-] scrubbles@poptalk.scrubbles.tech 7 points 11 months ago

I my experience you then send a different error code to help developers know that right away. Really if there is nothing the developer could do it should be a 500 server error. The server did in fact error.

If the developer should have done something different then translate it to an appropriate code, 400 bad request or something

[-] theory@feddit.uk 2 points 11 months ago
[-] barrage4u@lemmy.world 2 points 11 months ago

Can / should you use it for anything other than IPs?

[-] theory@feddit.uk 4 points 11 months ago

Well, if its acting as a proxy, then the status code should be transmitted intact right?

[-] peter@feddit.uk 2 points 11 months ago

It's not really a proxy, it's just making another request as part of its request

[-] Atiran@lemm.ee 2 points 11 months ago

In this case I like to return a 502.

[-] MsPenguinette@lemmy.blahaj.zone 1 points 11 months ago

Great time to implement a 7XX code: https://github.com/joho/7XX-rfc

739 might be a good one

[-] Atiran@lemm.ee 1 points 11 months ago

Nice! I’m definitely going to implement 787 at work.

[-] Walop@sopuli.xyz 32 points 11 months ago

After working few years on a complex web application, I am starting to feel this style. Doing RESTful APIs for anything else than dead simple CRUD is pain.

[-] masterspace@lemmy.ca 4 points 11 months ago

It's similar to how I now often avoid throwing errors in my code, and instead return a 'results' object that could potentially have an error or a success. It often forces you to test and think about the non happy path more thoroughly.

[-] Walop@sopuli.xyz 3 points 11 months ago

Exceptions actually have a huge performance hit, you should only use them in a HALT EVERYTHING IMMEDIATELY situations and never in anything that could be called repeatedly. We have refactored few of those to be 10-100 times faster by just returning success: false instead of throwing and catching exceptions.

[-] flashgnash@lemm.ee 32 points 11 months ago

Working with Microsoft's APIs is akin to trying to navigate a maze of barbed wire with a blindfold on

[-] Ducks@ducks.dev 23 points 11 months ago

Or when you hit an API and the error message comes back as html instead of json.

[-] Copio@lemmy.ml 22 points 11 months ago

Failed successfully.

[-] marcos@lemmy.world 20 points 11 months ago

The quality of Microsoft APIs is legendary... if you just take a minute to study win32, you will be always glad that those webserver responses are the kind of shit you have to deal with.

But to be fair, this looks exactly like a well designed API that somebody pushed behind a corporate firewall.

[-] z2k_@lemmy.nz 16 points 11 months ago

Wait til you hear about graphql..

[-] squirmy_wormy@lemmy.world 7 points 11 months ago

What don't you like about graphql error handling? Whenever I've made a graphql api, I use the default errors as unhandled/system errors and payloads return handled error types.

It's a bit more boilerplate to wire up, but I find it smooth to build and use

[-] z2k_@lemmy.nz 6 points 11 months ago

Just making a point that it always returns a 200 even when it errors.

[-] squirmy_wormy@lemmy.world 2 points 11 months ago

Fair point, that it does

[-] varzaman@lemm.ee 2 points 11 months ago

Yup I'm with you. Once the boilerplate is in place, smooth sailing from there. What OP is showing truly is the worst though lol.

[-] daniskarma@lemmy.world 6 points 11 months ago

Yes, but actually no.

[-] kresten@feddit.dk 6 points 11 months ago

Yeah, that's a pain. I'm probably lucky to only have experienced this once.

[-] UncommonBagOfLoot@lemmy.world 4 points 11 months ago

Wait, do you know if this still happens?

I have a ticket in our backlog to investigate similar issue with Teams Webhook reporting success but not posting anything.

None of us wanted to look at it so been in our backlog for a whilr

[-] callmepk@lemmy.world 4 points 11 months ago

Yep, this still happens

[-] bane_killgrind@lemmy.ml 2 points 11 months ago

There's a video somewhere by someone... Returning a blank document instead of an error code is sometimes a QoS decision. Clients won't make a new request without the user intervention, so whatever resource that's bottlenecked has time to catch up

[-] callmepk@lemmy.world 1 points 11 months ago

Since it's been months, I haven't checked... Will possibly take a look later

[-] lowleveldata@programming.dev 4 points 11 months ago* (last edited 11 months ago)

Sometimes it is because some monitoring tools are set to generate alert on certain frequency of 4xx / 5xx errors

[-] jagoan@lemmy.world 4 points 11 months ago

Yeah, typical on .net too. I just have a middleware and turn it into proper REST. Though all the error messages are usually like 'something went wrong'.

[-] flauschke@feddit.de 2 points 11 months ago

nice plain text response 🤦

load more comments
view more: next ›
this post was submitted on 07 Jul 2023
804 points (99.9% liked)

Programmer Humor

31191 readers
241 users here now

Post funny things about programming here! (Or just rant about your favourite programming language.)

Rules:

founded 4 years ago
MODERATORS