Maison > développement back-end > Golang > Serveur de limitation de débit API

Serveur de limitation de débit API

Patricia Arquette
Libérer: 2024-11-06 05:54:02
original
337 Les gens l'ont consulté

API Rate Limiting Server

Ce projet implémente un serveur HTTP avec limitation de débit. Cela garantit que pas plus de 5 requêtes par seconde peuvent être traitées.

Table des matières

  • Présentation
  • Caractéristiques
  • Lien Github
  • Installation
  • Points de terminaison
  • Utilisation
  • Test
  • Licence

Introduction

Le serveur de limitation de débit API limite le nombre de requêtes par seconde pour éviter les abus et gérer efficacement la charge du serveur. Il fournit des points de terminaison de journalisation détaillée et de vérification de l'état pour surveiller l'état du serveur.

Caractéristiques

  • Taux limité à 5 requêtes par seconde
  • Point de terminaison de vérification de l'état pour surveiller l'état du serveur
  • Journalisation détaillée des demandes

Lien GitHub

https://github.com/surajupadhaya/Simple-API-RateLimit
Copier après la connexion

Installation

1. Clone the repository:

   #git clone https://github.com/surajupadhaya/Simple-API-RateLimit
   #cd Simple-API-RateLimit


2. Install dependencies:
   #go mod tidy

Copier après la connexion

Points de terminaison

1. /: Default route returns a "stupid request" message with status 400.

2. /healthcheck: Endpoint to check the health status of the server. Returns "Health Passed" if the /healthcheck file exists, otherwise "Health Failed".

3. /api/v1/product: Example endpoint for the product API. Returns "This is a Product API" if the /api/v1/product file exists, otherwise "There is no Product API".
Copier après la connexion

Usage

1. Run the API rate limiting server:
   #go run main.go
2. Access the server:
   #curl -w %{http_code}http://localhost:8080 
Copier après la connexion

Test

1. Run Httperf tool to test the rate limiting 
Below httperf command is sending 6 connection parallelly in one sec 
Out of 6 only 1 will receive 503 code (due to throttling) remaining will receive based on behavior 
#httperf --server localhost --port 8080 --uri /healthcheck --num-conns 6

Sample output :

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/842aqi7lmzqw7sa1mcs1.png)



Copier après la connexion

Licence

This project is licensed under the MIT License. See the LICENSE file for details.

This `README.md` should cover the current state of your project, focusing on the API rate limiting aspect. Ready to roll? ?


This should cover everything your project entails. You can add, modify, or remove sections as needed. ?
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal