[Bioc-devel] Writing examples for accessing web API
Martin Morgan
martin.morgan at roswellpark.org
Sun Mar 19 19:10:24 CET 2017
A belated thanks for this update. Martin
On 03/08/2017 09:53 AM, Welliton Souza wrote:
> Martin,
>
> I am using the "Template for Resource Queries"
> (http://bioconductor.org/developers/how-to/web-query/). I think the
> correct is:
>
> while (N.TRIES > 0L) { # line 5
>
> instead of
>
> while (N.TRIES >= 0L) { # line 5
>
> Because it will run twice when N.TRIES = 1L. At the end of the
> loop N.TRIES should be 0 not -1. Or this line will fail.
>
> if (N.TRIES == 0L) { # line 12
>
> Welliton
>
> On Tue, Mar 7, 2017 at 5:15 PM Welliton Souza <well309 at gmail.com
> <mailto:well309 at gmail.com>> wrote:
>
> Thank you Martin for the response, it was very helpful.
>
> I am facing difficulties to write code examples, unit tests and
> vignettes for accessing web APIs. I understand that the use of
> \dontrun{} is not the best solution for examples. I am using
> testthat::skip_on_bioc() to avoid time consuming and internet
> connection during execution of unit tests. I also using pre-cached
> response data (Rda file) for vignettes because I didn't find a cache
> solution for knitr/Rmarkdown. It would be very useful a package that
> helps us caching web response data and time consuming results that
> can be used in examples, unit tests and vignettes.
>
> Welliton
>
>
> On Tue, Mar 7, 2017 at 4:49 PM Martin Morgan
> <martin.morgan at roswellpark.org
> <mailto:martin.morgan at roswellpark.org>> wrote:
>
> On 03/07/2017 02:35 PM, Welliton Souza wrote:
> > Thank you Nan Xiao, I think it is a good solution for my case.
> I will put
> > the definition of host outside the \dontrun{}.
>
> Actually, generally, one doesn't want to work around tests with
> hacks,
> but either (a) address the underlying problem or (b) justify
> what the
> current behavior is and live with the warning. Writing \dontrun{}
> doesn't help at all -- it might work now, but will suffer from 'bit
> rot' in the future; example and vignette code is littered with
> examples
> like this.
>
> The usual problem with web resources is that the functions that
> access
> them assume that the resource is reliably available, and that
> band width
> is infinite. In reality, the web resource is likely to experience
> periodic down time, and the band width can be cripplingly slow.
>
> There are a few notes here
>
> http://bioconductor.org/developers/how-to/web-query/
>
> discussing better practice for querying web resources. Avoiding
> infinitely querying a web resource and including a time out are two
> important steps.
>
> Ideally one would like unit tests that verify that the web
> resource is
> in fact alive, and that the expected API is available. One would not
> necessarily test the entire API, but rely instead on serialized
> instances to ensure that one parses the correct information.
>
> With examples, there is a combination of judicious use of web calls
> coupled with re-use of data from previous calls. The forthcoming
> BiocFileCache (https://github.com/Bioconductor/BiocFileCache)
> might be
> used to create a temporary cache used during the duration of the
> build /
> check, limiting the number of unique calls required while still
> exposing
> substantial functionality in the example pages.
>
> Martin
>
> >
> > Welliton
> >
> > Em ter, 7 de mar de 2017 16:27, Nan Xiao <road2stat at gmail.com
> <mailto:road2stat at gmail.com>> escreveu:
> >
> >> - this check can be bypassed by
> >> writing "partially working" examples,
> >> for instance:
> >>
> >> #' token = "foo"
> >> #' \dontrun{
> >> #' api(..., token)}
> >>
> >> Best,
> >> -Nan
> >>
> >> On Tue, Mar 7, 2017 at 2:13 PM, Welliton Souza
> <well309 at gmail.com <mailto:well309 at gmail.com>> wrote:
> >>
> >> Hi Sean,
> >>
> >> It doesn't require authentication. I've been using this server (
> >> http://1kgenomes.ga4gh.org) to provide working examples and
> do unit tests
> >> but I am not responsible for this server. However the package
> was developed
> >> to access any server endpoint that use the same API. There
> are many web
> >> resources to cover, the package takes some time to run all
> examples.
> >>
> >> Welliton
> >>
> >>
> >> Em ter, 7 de mar de 2017 16:03, Sean Davis
> <seandavi at gmail.com <mailto:seandavi at gmail.com>> escreveu:
> >>
> >> Hi, Welliton.
> >>
> >> Great question. Just out of curiosity, what are the internet
> connection
> >> requirements that preclude running examples? Is
> authentication required?
> >> Or are you connecting to a server that runs only intermittently?
> >>
> >> Sean
> >>
> >>
> >> On Tue, Mar 7, 2017 at 1:57 PM, Welliton Souza
> <well309 at gmail.com <mailto:well309 at gmail.com>> wrote:
> >>
> >> Hi,
> >>
> >> I am developing a package that access web API endpoints. I
> wrote the
> >> examples within \dontrun{} due to internet connection
> requirements.
> >> However, the BiocCheck reports that I should provide at least
> 80 % of
> >> running examples. What I should do? The package is mainly
> focused on
> >> accessing web API and processing response data.
> >>
> >> Best regards,
> >> Welliton Souza
> >>
> >> [[alternative HTML version deleted]]
> >>
> >> _______________________________________________
> >> Bioc-devel at r-project.org <mailto:Bioc-devel at r-project.org>
> mailing list
> >> https://stat.ethz.ch/mailman/listinfo/bioc-devel
> >>
> >> [[alternative HTML version deleted]]
> >>
> >> _______________________________________________
> >> Bioc-devel at r-project.org <mailto:Bioc-devel at r-project.org>
> mailing list
> >> https://stat.ethz.ch/mailman/listinfo/bioc-devel
> >>
> >>
> >>
> >>
> >> --
> >> https://nanx.me
> >>
> >
> > [[alternative HTML version deleted]]
> >
> > _______________________________________________
> > Bioc-devel at r-project.org <mailto:Bioc-devel at r-project.org>
> mailing list
> > https://stat.ethz.ch/mailman/listinfo/bioc-devel
> >
>
>
> This email message may contain legally privileged and/or
> confidential information. If you are not the intended
> recipient(s), or the employee or agent responsible for the
> delivery of this message to the intended recipient(s), you are
> hereby notified that any disclosure, copying, distribution, or
> use of this email message is prohibited. If you have received
> this message in error, please notify the sender immediately by
> e-mail and delete this email message from your computer. Thank you.
>
This email message may contain legally privileged and/or...{{dropped:2}}
More information about the Bioc-devel
mailing list