Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Date_Time_HTTP-Mohamed_Riyad #212

Open
13 of 22 tasks
moriyad12 opened this issue Jul 7, 2024 · 0 comments
Open
13 of 22 tasks

Date_Time_HTTP-Mohamed_Riyad #212

moriyad12 opened this issue Jul 7, 2024 · 0 comments

Comments

@moriyad12
Copy link

moriyad12 commented Jul 7, 2024

Develop and Test HTTP Client for Datetime Server #144

Description:
Create an HTTP client in Go that consumes the datetime server APIs implemented in the previous project #144 . This client will focus on building an HTTP client development and testing.

Requirements:

  • Client Functionality:
  • Implement functions to call each datetime server endpoint
  • Handle different response formats (JSON, plain text)
  • Implement proper error handling and timeouts
  • Configuration:
  • Allow configuration of server URLs and ports
  • Support for environment variable configuration
  • Retry Mechanism:
  • Implement a simple retry mechanism with backoff for failed requests: Check https://pkg.go.dev/github.com/cenkalti/backoff/v4 or similar
  • Testing:
  • Unit tests for client functions
  • Integration tests using a mock server
  • Documentation:
  • Provide godoc-style comments for all exported functions
  • Include usage examples in the README
  • Logging:
  • Implement structured logging for client operations
  • Optional Enhancements:
  • Implement a simple CLI interface for the client
  • Acceptance Criteria:
  • All tests pass and provide good coverage
  • Documentation clearly explains usage and testing procedures

After this one You can develop the one for pokeapi

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant