feat: implement middleware system - #52
Open
Wu-yunxiang wants to merge 5 commits into
Open
Conversation
- Add MiddlewareFunc interface for request/response processing - Implement MiddlewareChain for executing middleware in order - Add specialized middlewares: ToolHandler, Resource, Prompt - Include advanced middlewares: Auth, Retry, Cache, RateLimit, CircuitBreaker - Add comprehensive test coverage with unit and integration tests - Update client and server integration with middleware support - Add complete documentation with usage examples and best practices - Include example applications demonstrating middleware usage
- Remove empty validate/ directory and its empty files - Remove empty test_middleware/main.go file - Clean up unnecessary temporary files from the codebase
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
📋 Description
This PR implements a middleware system for tRPC-MCP-Go, providing flexible request/response processing capabilities for both client and server.
🚀 Key Features Added
MiddlewareFunc,MiddlewareChain)ToolHandler,Resource,Prompt)🛠️ Files Changed (18 files)
Core Implementation
middleware.go- Core middleware implementationmiddleware_test.go- Basic middleware testsmiddleware_advanced_test.go- Advanced middleware testsIntegration
client.go- Client middleware integrationserver.go- Server middleware integrationhandler.go- Handler middleware supportDocumentation
MIDDLEWARE.md- Comprehensive documentationMIDDLEWARE_IMPLEMENTATION_COMPLETE.md- Implementation summaryIMPLEMENTATION_SUMMARY.md- Technical detailsExamples
examples/middleware_example/- Basic usageexamples/client_middleware_example/- Client demoexamples/server_middleware_example/- Server demoUtilities
demo_enhanced_middleware.go- Enhanced demonstrationsmiddleware_monitoring.go- Monitoring utilitiesverify.ps1- Verification script.gitignore- Git ignore rules🧪 Testing
📖 Documentation
🔍 Breaking Changes
None. Full backward compatibility maintained.