From 5047de7dbd4745f9ab219b0cc46f4f6b493c6523 Mon Sep 17 00:00:00 2001 From: rjbasitali Date: Wed, 28 Sep 2022 03:20:12 +0500 Subject: [PATCH] middleware header --- content/posts/img/2021/middleware-header.png | Bin 0 -> 13918 bytes ...a-golang-middleware-for-your-http-handler.md | 1 + public/posts/img/2021/middleware-header.png | Bin 0 -> 13918 bytes .../index.html | 1 + 4 files changed, 2 insertions(+) create mode 100644 content/posts/img/2021/middleware-header.png create mode 100644 public/posts/img/2021/middleware-header.png diff --git a/content/posts/img/2021/middleware-header.png b/content/posts/img/2021/middleware-header.png new file mode 100644 index 0000000000000000000000000000000000000000..5fc14d28ae5c4467adfa21226151b1c15fb0b3b6 GIT binary patch literal 13918 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

If you are a backend developer working daily with HTTP requests then you have most likely already encountered situations where you want a common functionality across all the incoming HTTP requests, which can be as simple as checking if the Content-Type header only has the value application/json if you only support json, or maybe you want to spoof your HTTP request to change the method type from POST,GET or PUT to something else based on the X-HTTP-Method-Override header, or of course authenticate before finally passing the request to the destination HTTP handler.

+

middlewares

You can achieve the following behaviour by writing a middleware, also known as a filter in some other backend frameworks. You can have as many middlewares as you want, each with a separate responsibility, and can chain them together to funnel incoming HTTP requests.

Writing a middleware in Go is pretty simple, you just need to wrap your middleware around the base HTTP handler, which so to speak is a thin wrapper around your HTTP handler.

Lets start with http package’s ListenAndServe method, which listens for incoming connections and serves with the handler to handle the requests, and lets write a handler for root "/" path which checks for the header Content-Type to see if it’s application/json, because our API only accepts JSON, and respond with following json {"msg":"Hello world!"} to any incoming request: