aboutsummaryrefslogtreecommitdiffstats
path: root/lib/views/help/api.html.erb
blob: 323bdb77da0ae0ff7ed6016629a7c87daf2a4e03 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
<% @title = "Application Programming Interface - API" %>

<%= render :partial => 'sidebar' %>

<div id="left_column_flip">
<h1><%=@title %></h1>

<h2> Introduction </h2>

<p>This page explains how programmers can make other websites and software
interact with <%= site_name %> via an "API".
</p>

<p><%= site_name %> does not have a full API yet, but we are gradually adding
lots of things that are similar in use to an API as they are requested.
</p>

<hr>

<h2> 1. Linking to new requests </h2>

<p>To encourage your users to make links to a particular public authority, use URLs of the form
<%= link_to new_request_to_body_url(:url_name => "liverpool_city_council") , new_request_to_body_url(:url_name => "liverpool_city_council") %>. 
These are the parameters you can add to those URLs, either in the URL or from a form.

<ul>
    <li> <strong>title</strong> - default summary of the new request.</li>
    <li> <strong>default_letter</strong> - default text of the body of the letter. The salutation (Dear...) and signoff (Yours...) are wrapped round this. </li>
    <li> <strong>body</strong> - as an alternative to default_letter, this sets the default entire text of the request, so you can customise the salutation and signoff. </li>
    <li> <strong>tags</strong> - space separated list of tags, so you can find and link up any requests made later, e.g. <em>openlylocal spending_id:12345</em>. The : indicates it is a machine tag. The values of machine tags may also include colons, useful for URIs.
</ul>

<hr>

<h2> 2. RSS (actually, Atom) feeds </h2>

<p>There are Atom feeds on most pages which list FOI requests, which you can
use to get updates and links in XML format. Find the URL of the Atom feed in
one of these ways: 
<ul>
    <li>Look for the <img src="/images/feed-16.png" alt=""> RSS feed links.</li>
    <li>Examine the <tt>&lt;link rel="alternate" type="application/atom+xml"&gt;</tt> tag in the head of the HTML. </li>
    <li>Add <tt>/feed</tt> to the start of another URL.
</ul>

<p>In particular, even complicated search queries have Atom feeds.
You can do all sorts of things with them, such as query by authority, by file
type, by date range, or by status. See the <a href="/search">advanced search
tips</a> for details.

<hr>

<h2> 3. JSON structured data </h2>

<p>Quite a few pages have JSON versions, which let you download information about
objects in a structured form. Find them by:
<ul>
    <li>Adding <tt>.json</tt> to the end of the URL. </li>
    <li>Look for the <tt>&lt;link rel="alternate" type="application/json"&gt;</tt> tag in the head of the HTML. </li>
</ul>
</p>

<p>Requests, users and authorities all have JSON versions containing basic
information about them. Every Atom feed has a JSON equivalent, containing
information about the list of events in the feed.
</p>

<hr>
<h2> 4. Spreadsheet of all authorities </h2>

<p>
A spreadsheet file listing every body in <%= site_name %> is available:
<%= link_to "all-authorities.csv", all_public_bodies_csv_url() %>
</p>

<hr>

<p>Please <a href="/help/contact">contact us</a> if you need an API feature that isn't there yet. It's
very much a work in progress, and we do add things when people ask us to.</p>

<div id="hash_link_padding"></div>

</div>