content-negotiation

typescript
import type { IncomingMessage, ServerResponse } from "http";

const MIN_BYTES = 1024;

const INCOMPRESSIBLE = /^(image|video|audio)\/|application\/(zip|gzip|x-brotli|pdf|octet-stream)/i;

Response compression (only when it helps)

performance http express
by codesnips 3 tabs
javascript
const express = require('express');
const { toCsv } = require('./csvSerializer');
const { fetchOrders } = require('./orderRepository');

const router = express.Router();

Content Negotiation in Express: Serve JSON or CSV From One Route

express content-negotiation rest-api
by codesnips 3 tabs
go
package api

import "fmt"

type Resource struct {
	Type       string                 `json:"type"`

Serving Paginated JSON:API Collection Responses in Go

go jsonapi pagination
by codesnips 3 tabs
java
package com.shop.api.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.http.MediaType;
import org.springframework.web.servlet.config.annotation.ContentNegotiationConfigurer;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

Version a Spring Boot REST API via Content Negotiation and Custom Media Types

spring-boot rest api-versioning
by codesnips 4 tabs
ruby
require 'sinatra'
require 'json'
require_relative 'book'
require_relative 'helpers'

set :books, {

Sinatra Content Negotiation: Serve HTML or JSON by Accept Header

sinatra rack content-negotiation
by codesnips 4 tabs
go
package api

import (
	"encoding/json"
	"encoding/xml"
	"net/http"

Content-Negotiating HTTP Handler for JSON and XML in Go

go http content-negotiation
by codesnips 2 tabs
python
from rest_framework.versioning import BaseVersioning
from rest_framework.exceptions import NotAcceptable


class AcceptHeaderVersioning(BaseVersioning):
    default_version = "1"

Versioning a DRF Resource With Accept-Header Content Negotiation

django drf rest-api
by codesnips 4 tabs