From cfd69593f75295c63642a38af6801704c1bddc60 Mon Sep 17 00:00:00 2001 From: Simon Willison Date: Tue, 30 Jun 2020 16:45:34 -0700 Subject: [PATCH] Removed hashes from examples on docs/pages - closes #879 --- docs/pages.rst | 25 +++++++++---------------- 1 file changed, 9 insertions(+), 16 deletions(-) diff --git a/docs/pages.rst b/docs/pages.rst index ce8f5d06..db970ead 100644 --- a/docs/pages.rst +++ b/docs/pages.rst @@ -28,24 +28,17 @@ Add ``/.json`` to the end of the URL for the JSON version of the underlying data Database ======== -Each database has a page listing the tables, views and canned queries -available for that database. If the :ref:`permissions_execute_sql` permission is enabled (it's on by default) there will also be an interface for executing arbitrary SQL select queries against the data. +Each database has a page listing the tables, views and canned queries available for that database. If the :ref:`permissions_execute_sql` permission is enabled (it's on by default) there will also be an interface for executing arbitrary SQL select queries against the data. Examples: -* `fivethirtyeight.datasettes.com/fivethirtyeight-ac35616 `_ -* `global-power-plants.datasettes.com/global-power-plants-9e55be2 `_ +* `fivethirtyeight.datasettes.com/fivethirtyeight `_ +* `global-power-plants.datasettes.com/global-power-plants `_ The JSON version of this page provides programmatic access to the underlying data: -* `fivethirtyeight.datasettes.com/fivethirtyeight-ac35616.json `_ -* `global-power-plants.datasettes.com/global-power-plants-9e55be2.json `_ - -Note that these URLs end in a 7 character hash. This hash is derived from the contents of the database, and ensures that each URL is immutable: the data returned from a URL containing the hash will always be the same, since if the contents of the database file changes by even a single byte a new hash will be generated. - -If you access one of these URLs with an incorrect hash (say because a new version of the underlying database has been published) Datasette will 302 redirect you to the correct URL. This happens for all URLs below the database page as well. - -Thanks to this hashing scheme, Datasette URLs can all be returned with far-future cache expiry headers. This means browsers will cache the data (including data from the JSON APIs) for a long time, and CDNs such as `Cloudflare `_ or `Fastly `_ can be used to dramatically improve the performance of a Datasette hosted API. +* `fivethirtyeight.datasettes.com/fivethirtyeight.json `_ +* `global-power-plants.datasettes.com/global-power-plants.json `_ .. _TableView: @@ -62,8 +55,8 @@ You can also use the table page to interactively construct a SQL query - by appl Some examples: -* `../items `_ lists all of the line-items registered by UK MPs as potential conflicts of interest. It demonstrates Datasette's support for :ref:`full_text_search`. -* `../antiquities-act%2Factions_under_antiquities_act `_ is an interface for exploring the "actions under the antiquities act" data table published by FiveThirtyEight. +* `../items `_ lists all of the line-items registered by UK MPs as potential conflicts of interest. It demonstrates Datasette's support for :ref:`full_text_search`. +* `../antiquities-act%2Factions_under_antiquities_act `_ is an interface for exploring the "actions under the antiquities act" data table published by FiveThirtyEight. * `../global-power-plants?country_long=United+Kingdom&primary_fuel=Gas `_ is a filtered table page showing every Gas power plant in the United Kingdom. It includes some default facets (configured using `its metadata.json `_) and uses the `datasette-cluster-map `_ plugin to show a map of the results. .. _RowView: @@ -77,10 +70,10 @@ Table cells with extremely long text contents are truncated on the table view ac Rows which are the targets of foreign key references from other tables will show a link to a filtered search for all records that reference that row. Here's an example from the Registers of Members Interests database: -`../people/uk.org.publicwhip%2Fperson%2F10001 `_ +`../people/uk.org.publicwhip%2Fperson%2F10001 `_ Note that this URL includes the encoded primary key of the record. Here's that same page as JSON: -`../people/uk.org.publicwhip%2Fperson%2F10001.json `_ +`../people/uk.org.publicwhip%2Fperson%2F10001.json `_