Setting up your web service Dotnet’s stuff for developing web applications includes an inheritable class called ApiController. This makes it easy to develop REST-style web services, either for standalone API servers or in the context of larger servers. To start using ApiController, however, requires navigating lots of Microsoft documentation; as of early 2020 that documentation … Read more
Status Codes Real Web services have to be able to pass back a status code. Maybe it’s a plain 200 success code, or a 404 not found code. Whatever. We have to be able to control it. Here’s how. We’ll use the NegotiatedContentResult template class in the signature for the Get method. We have to … Read more
We send data to a web service via POST, PUT, or PATCH. All these web requests carry a payload: one or more items of data. How do we code these web services to accept data?
Many people surely know all this by now. Still, here are some things I’ve recently learned about notifying clients (browsers, API clients) about errors. Delivering errors from route handlers to clients This is remarkably easy, once you figure it out. Just use the http-errors package. (Beware, not the http-error package; it does something different. Call … Read more
I just got an email survey from our local monopoly internet service provider. Will you recommend Comcast to a friend? Yes=10 No=1 This betrays a profound misunderstanding of the usefulness of that kind of survey, called the Net Promoter Score (NPS) survey. Why is “will you recommend our lightly regulated monopoly to your friends” a … Read more
Stripe.com’s Stripe Elements is a great way to handle payment card information in a way that slows down cybercreeps. It’s secure because customers only enter card numbers into Stripe-furnished iframes, never into forms on the site taking payments via Stripe. Here is the sequence diagram for how Stripe Elements handles data flow
Software designers sometimes need to present UML sequence diagrams like this one. This kind of thing is absurdly fiddly to draw with most graphics packages. But there’s a language called PlantUML that allows us to write them as text and render them in various software tools, including WordPress with the plugin called PlantUML Renderer. The … Read more
Jupyter is an excellent free open source package for literate programming, especially in Python. It’s nice because it keeps a good record of what you try in experimental programming. And it’s easy to tidy up your work when you figure out what you’ve done, and store or publish it. It’s also sweet because it’s a … Read more