bchavez / bchavez/Coinbase

Architecture Discussion For v6

Open
#39 3 comments 0 reactions 0 assignees View on GitHub
Dominant language
C#
Stars
183
Forks
94
PR merge metrics
No merged PRs in 30d

Description

I was trying to integrate refresh tokens when I came across some issues.
The Architecture changes I'm going to propose should probably be for the next version v6 and not for now. I'm a bit confused on why the coinbase is inheriting from the FlurlClient.
This is creating a hard dependency on the FlurlClient. The client is subject to be changed (e.g) the last version was using RestSharp Client Perhaps their should be a protected property instead for the client, to abstract the depedency.

The current architecture makes it difficult to modify the request control flow, if someone wanted to catch an error such as expired_token, currently they would have to wrap every request made.

If the endpoints were made properties, and all inherited from the same base interface/ class, a builder could be used to construct the request, and the base class could have an execute function (similar to the prior version) which could be overridden to make it easier to change the control of each request.

For now I'm going to integrate the beta with my api.
lets discuss this more when you get a chance

Contributor guide

No contributing guide indexed for this repository

Research direction

No files, tests, or concrete entry points are named. Read the current Coinbase/FlurlClient inheritance and request-control flow first, then compare the proposed protected client abstraction, endpoint base type, and overridable execution path against the v6 scope. Done would require an agreed architecture and explicit scope.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
api, backend-api-design
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.