[Bioc-devel] Writing examples for accessing web API
Martin Morgan
martin.morgan at roswellpark.org
Tue Mar 7 20:49:50 CET 2017
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> 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> 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> 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> 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 mailing list
>> https://stat.ethz.ch/mailman/listinfo/bioc-devel
>>
>> [[alternative HTML version deleted]]
>>
>> _______________________________________________
>> 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 mailing list
> https://stat.ethz.ch/mailman/listinfo/bioc-devel
>
This email message may contain legally privileged and/or...{{dropped:2}}
More information about the Bioc-devel
mailing list