diff options
author | Pjotr Prins | 2020-11-05 11:22:26 +0000 |
---|---|---|
committer | Pjotr Prins | 2020-11-05 11:22:26 +0000 |
commit | f44cbe10ee5dc040d090d0350c626d1982fc6f6c (patch) | |
tree | 5b53149b812d02987275c2fc4a8579c669cab70f | |
parent | 4ec57900569c360151e8fd36649a035fba0a9869 (diff) | |
download | bh20-seq-resource-f44cbe10ee5dc040d090d0350c626d1982fc6f6c.tar.gz bh20-seq-resource-f44cbe10ee5dc040d090d0350c626d1982fc6f6c.tar.lz bh20-seq-resource-f44cbe10ee5dc040d090d0350c626d1982fc6f6c.zip |
Updated API doc
-rw-r--r-- | test/rest-api.html | 148 | ||||
-rw-r--r-- | test/rest-api.org | 25 |
2 files changed, 74 insertions, 99 deletions
diff --git a/test/rest-api.html b/test/rest-api.html index 6e5bf5a..2059ccb 100644 --- a/test/rest-api.html +++ b/test/rest-api.html @@ -3,7 +3,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <head> -<!-- 2020-07-21 Tue 05:38 --> +<!-- 2020-11-05 Thu 05:21 --> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <title>PubSeq REST API</title> @@ -40,7 +40,7 @@ } pre.src { position: relative; - overflow: visible; + overflow: auto; padding-top: 1.2em; } pre.src:before { @@ -195,50 +195,26 @@ </style> <link rel="Blog stylesheet" type="text/css" href="blog.css" /> <script type="text/javascript"> -/* -@licstart The following is the entire license notice for the -JavaScript code in this tag. - -Copyright (C) 2012-2020 Free Software Foundation, Inc. - -The JavaScript code in this tag is free software: you can -redistribute it and/or modify it under the terms of the GNU -General Public License (GNU GPL) as published by the Free Software -Foundation, either version 3 of the License, or (at your option) -any later version. The code is distributed WITHOUT ANY WARRANTY; -without even the implied warranty of MERCHANTABILITY or FITNESS -FOR A PARTICULAR PURPOSE. See the GNU GPL for more details. - -As additional permission under GNU GPL version 3 section 7, you -may distribute non-source (e.g., minimized or compacted) forms of -that code without the copy of the GNU GPL normally required by -section 4, provided you include this license notice and a URL -through which recipients can access the Corresponding Source. - - -@licend The above is the entire license notice -for the JavaScript code in this tag. -*/ +// @license magnet:?xt=urn:btih:e95b018ef3580986a04669f1b5879592219e2a7a&dn=public-domain.txt Public Domain <!--/*--><![CDATA[/*><!--*/ - function CodeHighlightOn(elem, id) - { - var target = document.getElementById(id); - if(null != target) { - elem.cacheClassElem = elem.className; - elem.cacheClassTarget = target.className; - target.className = "code-highlighted"; - elem.className = "code-highlighted"; - } - } - function CodeHighlightOff(elem, id) - { - var target = document.getElementById(id); - if(elem.cacheClassElem) - elem.className = elem.cacheClassElem; - if(elem.cacheClassTarget) - target.className = elem.cacheClassTarget; - } -/*]]>*///--> + function CodeHighlightOn(elem, id) + { + var target = document.getElementById(id); + if(null != target) { + elem.classList.add("code-highlighted"); + target.classList.add("code-highlighted"); + } + } + function CodeHighlightOff(elem, id) + { + var target = document.getElementById(id); + if(null != target) { + elem.classList.remove("code-highlighted"); + target.classList.remove("code-highlighted"); + } + } + /*]]>*///--> +// @license-end </script> </head> <body> @@ -252,31 +228,31 @@ for the JavaScript code in this tag. <h2>Table of Contents</h2> <div id="text-table-of-contents"> <ul> -<li><a href="#orgc76638c">1. PubSeq REST API</a> +<li><a href="#org2e7d6bb">1. PubSeq REST API</a> <ul> -<li><a href="#org247cf63">1.1. Introduction</a></li> -<li><a href="#orgcc2b1b0">1.2. Search for an entry</a></li> -<li><a href="#org0ef2d2f">1.3. Fetch metadata</a></li> -<li><a href="#org82c693c">1.4. Fetch EBI XML</a></li> +<li><a href="#orgc61d641">1.1. Introduction</a></li> +<li><a href="#org368b8a5">1.2. Search for an entry</a></li> +<li><a href="#org2cb1511">1.3. Fetch metadata</a></li> +<li><a href="#orgd3ad7fd">1.4. Fetch EBI XML</a></li> </ul> </li> -<li><a href="#org49153e2">2. Configure emacs to run tests</a></li> +<li><a href="#org77f889e">2. Configure emacs to run tests</a></li> </ul> </div> </div> -<div id="outline-container-orgc76638c" class="outline-2"> -<h2 id="orgc76638c"><span class="section-number-2">1</span> PubSeq REST API</h2> +<div id="outline-container-org2e7d6bb" class="outline-2"> +<h2 id="org2e7d6bb"><span class="section-number-2">1</span> PubSeq REST API</h2> <div class="outline-text-2" id="text-1"> <p> Here we document the public REST API that comes with PubSeq. The tests -run in the amazing emacs <a href="https://orgmode.org/worg/org-contrib/babel/languages/ob-doc-python.html">org-babel</a>. See the bottom of this document -for running the tests inside emacs. +run in emacs <a href="https://orgmode.org/worg/org-contrib/babel/languages/ob-doc-python.html">org-babel</a>. See the bottom of this document for running +the tests inside emacs. See bottom of the page how to run tests. </p> </div> -<div id="outline-container-org247cf63" class="outline-3"> -<h3 id="org247cf63"><span class="section-number-3">1.1</span> Introduction</h3> +<div id="outline-container-orgc61d641" class="outline-3"> +<h3 id="orgc61d641"><span class="section-number-3">1.1</span> Introduction</h3> <div class="outline-text-3" id="text-1-1"> <p> We built a REST API for COVID-19 PubSeq. The API source code can be @@ -290,8 +266,8 @@ found in <a href="https://github.com/arvados/bh20-seq-resource/tree/master/bh20s <div class="org-src-container"> <pre class="src src-js">{ - "service": "PubSeq", - "version": 0.1 + <span style="color: #9ccc65;">"service"</span>: <span style="color: #9ccc65;">"PubSeq"</span>, + <span style="color: #9ccc65;">"version"</span>: 0.1 } </pre> </div> @@ -301,12 +277,12 @@ The Python3 version is </p> <div class="org-src-container"> -<pre class="src src-python">import requests -baseURL="http://localhost:5000" # for development -# baseURL="http://covid19.genenetwork.org" -response = requests.get(baseURL+"/api/version") -response_body = response.json() -assert response_body["service"] == "PubSeq", "PubSeq API not found" +<pre class="src src-python"><span style="color: #fff59d;">import</span> requests +<span style="color: #ffcc80;">baseURL</span>=<span style="color: #9ccc65;">"http://localhost:5067"</span> <span style="color: #b0bec5;"># </span><span style="color: #b0bec5;">for development</span> +<span style="color: #b0bec5;"># </span><span style="color: #b0bec5;">baseURL="http://covid19.genenetwork.org"</span> +<span style="color: #ffcc80;">response</span> = requests.get(baseURL+<span style="color: #9ccc65;">"/api/version"</span>) +<span style="color: #ffcc80;">response_body</span> = response.json() +<span style="color: #fff59d;">assert</span> response_body[<span style="color: #9ccc65;">"service"</span>] == <span style="color: #9ccc65;">"PubSeq"</span>, <span style="color: #9ccc65;">"PubSeq API not found"</span> response_body </pre> </div> @@ -341,8 +317,8 @@ response_body </div> </div> -<div id="outline-container-orgcc2b1b0" class="outline-3"> -<h3 id="orgcc2b1b0"><span class="section-number-3">1.2</span> Search for an entry</h3> +<div id="outline-container-org368b8a5" class="outline-3"> +<h3 id="org368b8a5"><span class="section-number-3">1.2</span> Search for an entry</h3> <div class="outline-text-3" id="text-1-2"> <p> When you use the search box on PubSeq it queries the REST end point @@ -350,7 +326,7 @@ for information on the search items. For example </p> <div class="org-src-container"> -<pre class="src src-python">requests.get(baseURL+"/api/search?s=MT533203.1").json() +<pre class="src src-python">requests.get(baseURL+<span style="color: #9ccc65;">"/api/search?s=MT533203.1"</span>).json() </pre> </div> @@ -386,10 +362,10 @@ for information on the search items. For example <tr> <td class="org-left">collection</td> <td class="org-left">:</td> -<td class="org-left"><a href="http://collections.lugli.arvadosapi.com/c=0015b0d65dfd2e82bb3cee4436bf2893+126">http://collections.lugli.arvadosapi.com/c=0015b0d65dfd2e82bb3cee4436bf2893+126</a></td> +<td class="org-left"><a href="http://collections.lugli.arvadosapi.com/c=b16901333ea1754a1e0409bf3caf7d22+126">http://collections.lugli.arvadosapi.com/c=b16901333ea1754a1e0409bf3caf7d22+126</a></td> <td class="org-left">fasta</td> <td class="org-left">:</td> -<td class="org-left"><a href="http://collections.lugli.arvadosapi.com/c=0015b0d65dfd2e82bb3cee4436bf2893+126/sequence.fasta">http://collections.lugli.arvadosapi.com/c=0015b0d65dfd2e82bb3cee4436bf2893+126/sequence.fasta</a></td> +<td class="org-left"><a href="http://collections.lugli.arvadosapi.com/c=b16901333ea1754a1e0409bf3caf7d22+126/sequence.fasta">http://collections.lugli.arvadosapi.com/c=b16901333ea1754a1e0409bf3caf7d22+126/sequence.fasta</a></td> <td class="org-left">id</td> <td class="org-left">:</td> <td class="org-left">MT533203.1</td> @@ -408,8 +384,8 @@ acts as a deduplication uuid. </div> </div> -<div id="outline-container-org0ef2d2f" class="outline-3"> -<h3 id="org0ef2d2f"><span class="section-number-3">1.3</span> Fetch metadata</h3> +<div id="outline-container-org2cb1511" class="outline-3"> +<h3 id="org2cb1511"><span class="section-number-3">1.3</span> Fetch metadata</h3> <div class="outline-text-3" id="text-1-3"> <p> Using above collection link you can fetch the metadata in JSON as it @@ -423,7 +399,7 @@ because is does a bit more in terms of expansion </p> <div class="org-src-container"> -<pre class="src src-python">requests.get(baseURL+"/api/sample/MT533203.1.json").json() +<pre class="src src-python">requests.get(baseURL+<span style="color: #9ccc65;">"/api/sample/MT533203.1.json"</span>).json() </pre> </div> @@ -483,13 +459,13 @@ because is does a bit more in terms of expansion <tr> <td class="org-left">collection</td> <td class="org-left">:</td> -<td class="org-left"><a href="http://collections.lugli.arvadosapi.com/c=0015b0d65dfd2e82bb3cee4436bf2893+126">http://collections.lugli.arvadosapi.com/c=0015b0d65dfd2e82bb3cee4436bf2893+126</a></td> +<td class="org-left"><a href="http://collections.lugli.arvadosapi.com/c=b16901333ea1754a1e0409bf3caf7d22+126">http://collections.lugli.arvadosapi.com/c=b16901333ea1754a1e0409bf3caf7d22+126</a></td> <td class="org-left">date</td> <td class="org-left">:</td> <td class="org-right">2020-04-27</td> <td class="org-left">fasta</td> <td class="org-left">:</td> -<td class="org-left"><a href="http://collections.lugli.arvadosapi.com/c=0015b0d65dfd2e82bb3cee4436bf2893+126/sequence.fasta">http://collections.lugli.arvadosapi.com/c=0015b0d65dfd2e82bb3cee4436bf2893+126/sequence.fasta</a></td> +<td class="org-left"><a href="http://collections.lugli.arvadosapi.com/c=b16901333ea1754a1e0409bf3caf7d22+126/sequence.fasta">http://collections.lugli.arvadosapi.com/c=b16901333ea1754a1e0409bf3caf7d22+126/sequence.fasta</a></td> <td class="org-left">id</td> <td class="org-left">:</td> <td class="org-left">MT533203.1</td> @@ -513,8 +489,8 @@ because is does a bit more in terms of expansion -<div id="outline-container-org82c693c" class="outline-3"> -<h3 id="org82c693c"><span class="section-number-3">1.4</span> Fetch EBI XML</h3> +<div id="outline-container-orgd3ad7fd" class="outline-3"> +<h3 id="orgd3ad7fd"><span class="section-number-3">1.4</span> Fetch EBI XML</h3> <div class="outline-text-3" id="text-1-4"> <p> PubSeq provides an API that is used to export formats that are @@ -523,11 +499,11 @@ documented <a href="http://covid19.genenetwork.org/blog?id=using-covid-19-pubseq </p> <div class="org-src-container"> -<pre class="src src-python">requests.get(baseURL+"/api/ebi/sample-MT326090.1.xml").text +<pre class="src src-python">requests.get(baseURL+<span style="color: #9ccc65;">"/api/ebi/sample-MT326090.1.xml"</span>).text </pre> </div> -<pre class="example"> +<pre class="example" id="orgb2d805a"> <?xml version="1.0" encoding="UTF-8"?> <SAMPLE_SET> <SAMPLE alias="MT326090.1" center_name="COVID-19 PubSeq"> @@ -584,20 +560,20 @@ documented <a href="http://covid19.genenetwork.org/blog?id=using-covid-19-pubseq </div> </div> -<div id="outline-container-org49153e2" class="outline-2"> -<h2 id="org49153e2"><span class="section-number-2">2</span> Configure emacs to run tests</h2> +<div id="outline-container-org77f889e" class="outline-2"> +<h2 id="org77f889e"><span class="section-number-2">2</span> Configure emacs to run tests</h2> <div class="outline-text-2" id="text-2"> <p> -Execute a code -block with C-c C-c. You may need to set +Execute a code block with C-c C-c. You may need to set </p> <div class="org-src-container"> <pre class="src src-elisp">(org-babel-do-load-languages 'org-babel-load-languages '((python . t))) -(setq org-babel-python-command "python3") -(setq org-babel-eval-verbose t) +(<span style="color: #fff59d;">setq</span> org-babel-python-command <span style="color: #9ccc65;">"python3"</span>) +(<span style="color: #fff59d;">setq</span> org-babel-eval-verbose t) +(<span style="color: #fff59d;">setq</span> org-confirm-babel-evaluate nil) </pre> </div> @@ -617,7 +593,7 @@ To see output of the inpreter open then <b>Python</b> buffer. </div> </div> <div id="postamble" class="status"> -<hr><small>Created by <a href="http://thebird.nl/">Pjotr Prins</a> (pjotr.public768 at thebird 'dot' nl) using Emacs org-mode and a healthy dose of Lisp!<br />Modified 2020-07-21 Tue 05:38</small>. +<hr><small>Created by <a href="http://thebird.nl/">Pjotr Prins</a> (pjotr.public768 at thebird 'dot' nl) using Emacs org-mode and a healthy dose of Lisp!<br />Modified 2020-11-05 Thu 05:21</small>. </div> </body> </html> diff --git a/test/rest-api.org b/test/rest-api.org index 4b66147..28d7559 100644 --- a/test/rest-api.org +++ b/test/rest-api.org @@ -13,8 +13,8 @@ * PubSeq REST API Here we document the public REST API that comes with PubSeq. The tests -run in the amazing emacs [[https://orgmode.org/worg/org-contrib/babel/languages/ob-doc-python.html][org-babel]]. See the bottom of this document -for running the tests inside emacs. +run in emacs [[https://orgmode.org/worg/org-contrib/babel/languages/ob-doc-python.html][org-babel]]. See the bottom of this document for running +the tests inside emacs. See bottom of the page how to run tests. ** Introduction @@ -36,7 +36,7 @@ The Python3 version is #+begin_src python :session :exports both import requests -baseURL="http://localhost:5000" # for development +baseURL="http://localhost:5067" # for development # baseURL="http://covid19.genenetwork.org" response = requests.get(baseURL+"/api/version") response_body = response.json() @@ -57,7 +57,7 @@ requests.get(baseURL+"/api/search?s=MT533203.1").json() #+end_src #+RESULTS: -| collection | : | http://collections.lugli.arvadosapi.com/c=0015b0d65dfd2e82bb3cee4436bf2893+126 | fasta | : | http://collections.lugli.arvadosapi.com/c=0015b0d65dfd2e82bb3cee4436bf2893+126/sequence.fasta | id | : | MT533203.1 | info | : | http://identifiers.org/insdc/MT533203.1#sequence | +| collection | : | http://collections.lugli.arvadosapi.com/c=b16901333ea1754a1e0409bf3caf7d22+126 | fasta | : | http://collections.lugli.arvadosapi.com/c=b16901333ea1754a1e0409bf3caf7d22+126/sequence.fasta | id | : | MT533203.1 | info | : | http://identifiers.org/insdc/MT533203.1#sequence | where collection is the raw uploaded data. The hash value in ~c=~ is computed on the contents of the Arvados keep [[https://doc.arvados.org/v2.0/user/tutorials/tutorial-keep-mount-gnu-linux.html][collection]] and effectively @@ -77,7 +77,7 @@ requests.get(baseURL+"/api/sample/MT533203.1.json").json() #+end_src #+RESULTS: -| collection | : | http://collections.lugli.arvadosapi.com/c=0015b0d65dfd2e82bb3cee4436bf2893+126 | date | : | 2020-04-27 | fasta | : | http://collections.lugli.arvadosapi.com/c=0015b0d65dfd2e82bb3cee4436bf2893+126/sequence.fasta | id | : | MT533203.1 | info | : | http://identifiers.org/insdc/MT533203.1#sequence | mapper | : | minimap v. 2.17 | sequencer | : | http://www.ebi.ac.uk/efo/EFO_0008632 | specimen | : | http://purl.obolibrary.org/obo/NCIT_C155831 | +| collection | : | http://collections.lugli.arvadosapi.com/c=b16901333ea1754a1e0409bf3caf7d22+126 | date | : | 2020-04-27 | fasta | : | http://collections.lugli.arvadosapi.com/c=b16901333ea1754a1e0409bf3caf7d22+126/sequence.fasta | id | : | MT533203.1 | info | : | http://identifiers.org/insdc/MT533203.1#sequence | mapper | : | minimap v. 2.17 | sequencer | : | http://www.ebi.ac.uk/efo/EFO_0008632 | specimen | : | http://purl.obolibrary.org/obo/NCIT_C155831 | @@ -148,19 +148,18 @@ requests.get(baseURL+"/api/ebi/sample-MT326090.1.xml").text * Configure emacs to run tests -Execute a code -block with C-c C-c. You may need to set +Execute a code block with C-c C-c. You may need to set #+begin_src elisp -(org-babel-do-load-languages - 'org-babel-load-languages - '((python . t))) -(setq org-babel-python-command "python3") -(setq org-babel-eval-verbose t) + (org-babel-do-load-languages + 'org-babel-load-languages + '((python . t))) + (setq org-babel-python-command "python3") + (setq org-babel-eval-verbose t) + (setq org-confirm-babel-evaluate nil) #+end_src #+RESULTS: -: python3 To skip confirmations you may also want to set |