Comments (5)
Hi Robert. I agree.
Right now, Gibbon doesn't require an update when MailChimp makes additions or changes their API (within a major API version). I like that a lot.
It would be simple to hard code a list of categories (templates, users, lists, etc.) that MailChimp exposes via the API but this if MailChimp adds another category. Admittedly, this doesn't happen often.
The problem you point out happens one level deeper as well when actually calling a given method (and corresponding endpoint). Fixing this would either require making a request to the API and inspecting the response (404 return false, 500 return true, for example) or hard coding a list of endpoints. I'm not a fan of hard coding the endpoints for the reason I mentioned above.
Thoughts?
from gibbon.
Robert, I've gone ahead and implemented the local part of this for the primary API and export APi. I don't want to implement the remote endpoint checking for categories themselves just yet. I'll release this soon.
from gibbon.
@amro I didn't have time to answer earlier. Maybe it would make sense to implement respond_to?
for namespaces and API calls that we already know that they exists and still let you call other methods which might hit newly added API endpoints and work properly but they won't be return true
for respond_to?
check?
Frankly, I would harcode the possible API endpoints and add them when new endpoint is added. After all, they are not added every day and if someone needs them, they will send pull request anyway probably. But if you don't wanna go that way for the reasons you mentioned, that is of course your privilege as the author and maintainer of the gem, which I am just happy using :)
from gibbon.
Unfortunately, I am not sure what you mean by implemented the local part of this for the primary API and export API.
from gibbon.
Sorry for not being clear. I mean I've hard coded the categories (not end points) for the primary API and the end points for the export API.
Thanks for the feedback. I should release this soon.
from gibbon.
Related Issues (20)
- pass the content in campaign
- Cannot set faraday_adapter globally HOT 3
- Uninitialized constant Faraday::Error::ClientError HOT 3
- Changelog updates for 3.3.2 HOT 2
- NameError: uninitialized constant Faraday::Error::ClientError HOT 3
- Rescued errors come back with all nil values? HOT 8
- Got error saying api_key not found HOT 1
- gibbon report issue
- How to send campaign emails to some specific users? HOT 1
- How to delete a member from a list? HOT 5
- How to add member in the segment of a list ?
- Faraday 1.x.x compability HOT 2
- Deprecated warning on Faraday::Connection#basic_auth HOT 4
- 3.4.1 Causes 401: API Key Invalid HOT 7
- updating members in batching does not work HOT 1
- Gibbon doesn't work with Faraday 2.x HOT 4
- How to unsubscribe email that is bounced, pending, or archived? HOT 3
- v3.4.4 security patch for v3.4.0? HOT 1
- API Export 1.0 and API 2.0 will be retired on June 5, 2023 HOT 11
- Updating from 1.x: How to replace .lists.merge_var_add? HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from gibbon.