polyDB REST API
The polyDB can be accessed via a REST API
Base path:
https://polydb.org/rest/current/
The API implements the following endpoints:
- Info on collections
- section
- sections
- collection
- collections
- Schema
- schema
- Querying the Database
- find
- find_one
- count
- distinct
- id
Some examples are below.
The full documentation of all endpoints with examples for data and code is here.
Some examples for the REST API
Obtain info on available collections
section
This returns section documentation and a list of subsections and collections in this section:
https://polydb.org/rest/current/section/<sectionname>/<subsectionname>/...
with possible parameters
recursive={0,1}
and
short={0,1}
. Example:
https://polydb.org/rest/current/section/Polytopes?recursive=1
returns
{ "description": "A collection of families of polytopes", "subsections": [ "Polytopes.Combinatorial", "Polytopes.Geometric", "Polytopes.Lattice" ], "collections": [ "Polytopes.Combinatorial.01Polytopes", "Polytopes.Combinatorial.CombinatorialTypes", "Polytopes.Combinatorial.FacesBirkhoffPolytope", "Polytopes.Combinatorial.SmallSpheresDim4", "Polytopes.Geometric.01Polytopes", "Polytopes.Lattice.01Polytopes", "Polytopes.Lattice.ExceptionalMaximalHollow", "Polytopes.Lattice.Reflexive", "Polytopes.Lattice.SmoothReflexive" ] }
sections
This returns a list of subsections of the given one
collection
This prints full information on a collection. The collection is given as
/section/<sectionname>/<subsectionname>/.../<collectionname>
Here is an example:
https://polydb.org/rest/current/collection/Tropical/SchlaefliFan
collections
This lists all collections contained in a section.
/section/<sectionname>/<subsectionname>/.../
Example:
https://polydb.org/rest/current/collections/Tropical/
returns
[ "Tropical.Cubics", "Tropical.Polytropes", "Tropical.SchlaefliFan", "Tropical.TOM" ]
Query Data
find
This endpoint does a general query on the given collection and returns a list of the results. You can set the options sort, limit, and skip. However, the query never returns more than 10 entries.
Example:
https://polydb.org/rest/current/find/Polytopes/Lattice/Reflexive?query={"N_VERTICES"%3A5}&limit=10&skip=100
will return at most 10 reflexive polytopes with 5 vertices, skipping the first 100 matches.
find_one
This works as find, but returns at most one match. The option limit does not apply here.
Example:
https://polydb.org/rest/current/find_one/Polytopes/Lattice/Reflexive?query={"N_VERTICES"%3A5}
distinct
count
This counts the number of results that match a given query. Example:
https://polydb.org/rest/current/count/Polytopes/Combinatorial/01Polytopes?query={"N_VERTICES"%3A15}
returns
139983
id
Returns a single document by its id.
Example
https://polydb.org/rest/current/id/Polytopes/Combinatorial/01Polytopes/5d.15v.10f.C8
Obtain the JSON Schema for the data
schema
Example
https://polydb.org/rest/current/schema/Polytopes/Lattice/Reflexive