Comments (4)
Thanks for the feedback. This is a topic that's not well documented or discussed.
The List API docs indicate that calling list().items()
without any listCols
will return the same results that the SP REST API provides for consistency (a "select *" basically). My thought was consistency is paramount, plus anyone who calls items without any args is likely someone who wants everything, possibly even the metadata.
The list().cols()
method will return a trimmed list of fields available, as most users don't want to see 3 different "Title" columns - it's junk to them.
Therefore, i'd propose the answer is that cols()
is a subset of all the columns that exist, but it always contains a valid array of fields, so you could use this call to answer the question, "What columns can i query?"
from sprestlib.
Thanks @gitbrent
Another dimension on this challenge. The way spRestLib transparently translates between user and lookup columns object format and the simple list format is a great time and effort saver. However this is part of the challenge and is a source of divergence between items() and cols(). E.g. When the Editor column per cols() is retrieved we have items() return 'EditorId'.
One idea would be to provide items().cols() that works with or without items in the list?
from sprestlib.
I see what you're saying.
There's some inherent mapping weirdness with column names just due to the SharePoint team's API implementation, legacy support, etc. that has to be dealt with by any kind of a wrapper library like this one.
I like the idea of taking the last step and providing a collection of names that are universal across the methods...
maybe adding a new option: items({ useColNames:true })
that would return all cols but with the same names cols()
produces - e.g.: Editor.Id
instead of EditorId
from sprestlib.
OK, I see.
I was rather a fan of the flattening of the object returned for users and lookups to an Id.
However, I can see that going back to an object but without cruft would be OK, and even create an opportunity.
While we are here, could we unify the handling of multiple select lookups so that both single lookup AND multi-lookup return Column.Ids with values [] for no value, [Id] for a user or single lookup, and [Id,Id,Id] for multi-select. Marshaled and unmarshaled for get, create and update.
This would also greatly simplify some of my code built on top of spRestLib.
Props to you by the way and a huge thanks.
David
from sprestlib.
Related Issues (20)
- sprLib.site().groups() fails on SP2013 HOT 3
- Demo doesn't work from sub-folder off sitepages HOT 1
- SP Rest API support for adding Groups HOT 2
- New issue with Response Header... HOT 1
- Incorrect example in documentation on method .recycle() file HOT 1
- Incorrect request parameter when using only one queryNext option HOT 2
- Batch Requests Support HOT 2
- SP.Folder does not return data related to current site
- how at queryfilter do (and) Condition filter ? HOT 1
- sprLib.folder().add() requires requestDigest / security token HOT 1
- $expand available? HOT 2
- sprLib.file(somefile).checkout is not a function
- cols() error on SP2016
- file upload cannot set overwrite to false
- Error when updating item using JSON.stringify
- Site Collection/Subsite sprLib.site(siteUrl).create()
- Example fail to upload on SP 2019
- Column Modified by cannot be loaded (400) The query to field 'Editor' is not valid.
- SpRestLib queryFilter
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 sprestlib.