Heim  >  Artikel  >  Backend-Entwicklung  >  API-Ratenbegrenzungsserver

API-Ratenbegrenzungsserver

Patricia Arquette
Patricia ArquetteOriginal
2024-11-06 05:54:02237Durchsuche

API Rate Limiting Server

Dieses Projekt implementiert einen HTTP-Server mit Ratenbegrenzung. Es stellt sicher, dass nicht mehr als 5 Anfragen pro Sekunde verarbeitet werden können.

Inhaltsverzeichnis

  • Einführung
  • Funktionen
  • Github-Link
  • Installation
  • Endpunkte
  • Verwendung
  • Testen
  • Lizenz

Einführung

Der API-Ratenbegrenzungsserver begrenzt die Anzahl der Anfragen pro Sekunde, um Missbrauch zu verhindern und die Serverlast effektiv zu verwalten. Es bietet detaillierte Protokollierung und Zustandsprüfung von Endpunkten zur Überwachung des Serverstatus.

Merkmale

  • Ratenbegrenzung auf 5 Anfragen pro Sekunde
  • Gesundheitsprüfungsendpunkt zur Überwachung des Serverstatus
  • Detaillierte Anfrageprotokollierung

Github-Link

https://github.com/surajupadhaya/Simple-API-RateLimit

Installation

1. Clone the repository:

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


2. Install dependencies:
   #go mod tidy

Endpunkte

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".

Verwendung

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

Prüfen

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)



Lizenz

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. ?

Das obige ist der detaillierte Inhalt vonAPI-Ratenbegrenzungsserver. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn