-
Notifications
You must be signed in to change notification settings - Fork 13
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
getContent() returns the information we index for feature layers #322
Comments
Should this method provide an option to include or not include these additional metadata? When these extended properties are not cached via harvesting (e.g. public datasets) then there could be significant XHR to fetch these from different endpoints. Relatedly, should the extended properties be in a type-specific property to make it clear they're type specific, maybe optional, and keep the primary object readable/coherent. For example |
Some things we discussed offline:
|
I’d like to hear @mikeringrose thoughts on default includes. I recall seeing an update to Urban GraphQL API only default return an ID unless fields were explicitly include. However, that would be onerous request to include all common Resources or Content metadata. We don’t want to require knowledge of the data store implementation (what’s in Portal vs Server) - but is it sensible to say “by default the model includes [...] attributes” |
To me this option is not going to specify which fields are returned, but rather which additional xhrs are going to be made if needed (i.e. the content is coming from the portal API instead of the Hub API). I don't think we should derive the list of xhrs from a list of fields (i.e. "consumer wants To me that implies a better name than
|
Also, there are some enrichments like This makes me wonder if ought to just provide additional async functions like At least we can start w/ those fns, and decide later if |
@tomwayson I really dislike and want to actively avoid adding "GIS infrastructure implementation" to these methods. What the heck is Maybe a middle ground is aligning these external metadata sources with their semantic and logical utility. For example, can I agree that we can provide these individual focused request methods for external use; but the primary use case would be the single For For |
Further, the string stats calls are made sequentially (I assume to avoid overwhelming the server, perhaps someone remembers). So whether it's an In any case, as part of the filtering work, it would be great to have @JoshCrozier involved in this, and consider extracting some of the relevant hub-indexer stats code linked above into hub.js methods for use on the client as well. |
I think that's just an implementation detail difference (naming things)
or less meaningful depending on the audience, for example myself. sounds like we're in agreement on these ideas:
sounds like we're not exactly in agreement in what to name those fns and options but that's software
I agree, but that's the higher-order, and harder use case. I suggest we start by building the stand-alone fns themselves. That will help inform us on what the Specifically, I suggest we start w/ #353, which is not specific to datasets, but should help illuminate the pattern. Then we can build into |
In #399 I set up the infrastructure to make additional fetches for content properties and gracefully capture any errors. We can use that for the additional properties needed for datasets. We'll use #401 to flesh out:
We'll use #538 to flesh out:
I've scoped this issue down to focus on returning what is needed for a feature layer. We can add additional issues for the other types of content that hub considers a dataset. |
We should reference the functions outlined https://devtopia.esri.com/dc/hub/issues/1187 to understand what composer is doing server-side. |
Define
IHubDataset
that extendsIHubContent
w properties likerecordCount
,fields
,geometryType
,layer
?,server
?, etc, as needed by the Hub app, and havegetContent()
return that when the content'shubType
isdataset
.The text was updated successfully, but these errors were encountered: