## The contents of this file are subject to the Common Public Attribution ## License Version 1.0. (the "License"); you may not use this file except in ## compliance with the License. You may obtain a copy of the License at ## http://code.reddit.com/LICENSE. The License is based on the Mozilla Public ## License Version 1.1, but Sections 14 and 15 have been added to cover use of ## software over a computer network and provide for limited attribution for the ## Original Developer. In addition, Exhibit A has been modified to be ## consistent with Exhibit B. ## ## Software distributed under the License is distributed on an "AS IS" basis, ## WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for ## the specific language governing rights and limitations under the License. ## ## The Original Code is reddit. ## ## The Original Developer is the Initial Developer. The Initial Developer of ## the Original Code is reddit Inc. ## ## All portions of the code written by reddit are Copyright (c) 2006-2012 ## reddit Inc. All Rights Reserved. ############################################################################### <%! import re from r2.lib.filters import safemarkdown from r2.controllers.api_docs import section_info %> <%def name="api_method_id(uri, method)">${method}_${uri.replace('/', '_').strip('_')} <%def name="api_uri(uri)">${unsafe(re.sub(r'{(\w+)}', r'\1', uri))} <% api = thing.api_docs %>

This is automatically-generated documentation for the reddit API.

The reddit API and code are open source. Found a mistake or interested in helping us improve? Have a gander at api.py and send us a pull request.

Please take care to respect our API access rules.

%for section in sorted(api):

${section_info[section]['title']}

%if 'description' in section_info[section]:
${unsafe(safemarkdown(section_info[section]['description']))}
%endif %for uri in sorted(api[section]): %for method in sorted(api[section][uri]): <% docs = api[section][uri][method] # skip uri variants in the index if docs['uri'] != uri: continue extends = docs.get('extends') %>

${method}  ${api_uri(uri)} %if 'extensions' in docs: [ ${' | '.join('.'+extension for extension in docs['extensions'])} ] %endif

%if 'uri_variants' in docs:
    %for variant in docs['uri_variants']:
  • → ${api_uri(variant)}
  • %endfor
%endif
${unsafe(safemarkdown(docs.get('doc')))} <% params = docs.get('parameters') base_params = extends.get('parameters') if extends else None %> %if params or base_params: %if params: %for param in sorted(params): %endfor %endif %if base_params: %for param in sorted(base_params): %endfor %endif
${param} ${params[param]}
${param} ${base_params[param]}
%endif
%endfor %endfor %endfor