-
Notifications
You must be signed in to change notification settings - Fork 5
Description
There are a ton of endpoints, and most users will only use a small number of them.
Current organization is flat, with endpoints, fetchers, and utility functions all mixed together:
* package
* afhsb [endpoint]
* cdc [endpoint]
* covidcast_meta [endpoint]
* delphi [endpoint]
* dengue_nowcast [endpoint]
* dengue_sensors [endpoint]
* ecdc_ili [endpoint]
* epirange [utility]
* fetch_classic [fetcher]
* fetch_csv [fetcher]
* fetch_df [fetcher]
* fetch_json [fetcher]
* flusurv [endpoint]
* fluview_meta [endpoint]
* gft [endpoint]
* ght [endpoint]
* kcdc_ili [endpoint]
* meta [endpoint]
* meta_afhsb [endpoint]
* meta_norostat [endpoint]
* nidss_dengue [endpoint]
* norostat [endpoint]
* nowcast [endpoint]
* paho_dengue [endpoint]
* quidel [endpoint]
* sensors [endpoint]
* with_base_url [utility]
This organization is easiest to implement and automatically generates matching man pages, but it does flood autocomplete, making it difficult to refer to utility functions.
There are several alternative organization schemes we could consider, all with pros and cons:
- Named lists
- Prefixes
- R6 objects
Named lists
* package
* endpoint$
* afhsb
* cdc
* covidcast_meta
* delphi
* dengue_nowcast
* dengue_sensors
* ecdc_ili
* flusurv
* fluview_meta
* gft
* ght
* kcdc_ili
* meta
* meta_afhsb
* meta_norostat
* nidss_dengue
* norostat
* nowcast
* paho_dengue
* quidel
* sensors
* epirange
* fetch$
* classic
* csv
* df
* json
* with_base_url
To make this work, we'd have to specify our own man files for the lists and their members.
Prefixes
We're already considering adding pvt_
for the restricted endpoints; we could easily switch to eg endpoint_covidcast
. Autocomplete would still be flooded but it would be easier for users to tell what was what.
R6 objects
Not familiar wtih this; maybe @brookslogan can advise?