paypal / paypal-ios

One merchant integration point for all of PayPal's services
Apache License 2.0
59 stars 27 forks source link

Networking Refactor - PR Series #195

Closed scannillo closed 1 year ago

scannillo commented 1 year ago

Reason for changes

These changes have already been reviewed in this series of PRs. I created this PR solely to confirm CI passes.

:warning: Do not squash and merge

Summary

These PRs re-architect our networking layer to allow for re-use between GraphQL and REST request implementation. We can now use the same underlying HTTP layer for each request, in addition to a single implementation of Apple's URLSession, URLRequest, JSONDecoder, & JSONEncoder.

This reduces duplication, and increases testability of each layer through removing heavy logic that previously lived in protocol extensions. This also unifies our APIs for making a REST & GraphQL request from the feature client level.

Before After
PPCP iOS Networking Before PPCP iOS Networking After

Next Steps

We need to create JIRAs for the following tasks:

Checklist

Authors

@scannillo