Comments (4)
I think it could be good to open a ticket for:
"Specify cache signature" - would be good to have some focussed conversations on this -
Isn't the issue with "exposing implementation details" more that we want a stable API - ie it's not that keeping implentation a secret is a problem - it is more that we need to ensure we don't have to change API signature in the future?
If we have a good pattern that will be friendly for coders that we don't need to change in the future, that is the main thing right? I'm concerned about "dont reveal the implementation" as a goal in itself as often having a thin layer around the "correct" implementation is going to look just like that
from org.civicrm.api4.
^^^ @xurizaemon does that make any sense at all, or have I misunderstood?
from org.civicrm.api4.
Yeah I think you've understood fairly correctly. Ideally what I'm asking is let's have as a goal the API signatures being as clean as possible, without needing people to know about internals. For me this means things like:
- Entities and column names preferring "natural" terminology over than "whatever's in the DB schema"
- Offering paging not requiring exposing a
civicrm_prevnext_cache
entity (IDK, maybe I misunderstood this comment from chat.civicrm.org) - Encapsulating the query interface to permit filtering without risking security.
from org.civicrm.api4.
cool!
I think the first one could be it's own case?
yes lets agree forever never to expose any entity with cache
in it!
re filtering - i think we have it nailed - but need to think about harder about #43
do we need to keep this issue open do you think?
from org.civicrm.api4.
Related Issues (20)
- What is the deal with ad hoc actions HOT 5
- apiv4 regression HOT 4
- Joining on entity_tag doesn't work HOT 2
- Activity 'Date' Custom Field ignores the time HOT 1
- Documentation link - what should it be
- Contact::update() clears contact subtype HOT 2
- Error when traying to retrieve participants / gender
- REST.php not working in 5.13.0 HOT 2
- Relationship.Update gives error 500 if there are no records to update
- Bulk create/update action HOT 2
- Support custom date ranges
- Can't join contribution entity to contacts HOT 5
- Mapping api does not support a name in mapping_type_id HOT 2
- ORDER BY some_custom_field not working
- Organize next release of APIv4 HOT 12
- Can we 'removeWhere' HOT 1
- Authorization failed for anoymous WordPress User HOT 6
- "IN" operator for addWhere() not returning data HOT 3
- Keep getting errors "DB Error: no such field"
- It should be noted someplace here and on the civi extensions page that this has been rolled into core with 5.19 HOT 1
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 org.civicrm.api4.