diff --git a/app/controllers/api/v1/site_controller.rb b/app/controllers/api/v1/site_controller.rb new file mode 100644 index 00000000..64ca2dec --- /dev/null +++ b/app/controllers/api/v1/site_controller.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +class Api::V1::SiteController < ApiController + respond_to :json + + def index + end +end diff --git a/app/views/api/v1/site/index.rabl b/app/views/api/v1/site/index.rabl new file mode 100644 index 00000000..09f78560 --- /dev/null +++ b/app/views/api/v1/site/index.rabl @@ -0,0 +1,14 @@ +object false + +node(:title) {Setting.site_title} + +node(:max_chars) {500} + +node(:links) do + { + t('about.learn_more') => url_for(about_more_url), + t('about.terms') => url_for(terms_url), + t('about.source_code') => "https://github.com/tootsuite/mastodon", + t('about.other_instances') => "https://github.com/tootsuite/mastodon/blob/master/docs/Using-Mastodon/List-of-Mastodon-instances.md", + } +end diff --git a/config/routes.rb b/config/routes.rb index 870d8afd..4595b4ba 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -129,6 +129,7 @@ Rails.application.routes.draw do resources :blocks, only: [:index] resources :favourites, only: [:index] resources :reports, only: [:index, :create] + resources :site, only: [:index] resources :follow_requests, only: [:index] do member do diff --git a/docs/Using-the-API/API.md b/docs/Using-the-API/API.md index 07c1b25a..8dcf2a84 100644 --- a/docs/Using-the-API/API.md +++ b/docs/Using-the-API/API.md @@ -19,6 +19,7 @@ API overview - Who reblogged/favourited a status - Following/unfollowing accounts - Blocking/unblocking accounts + - Getting site information - Creating OAuth apps - [Entities](#entities) - Status @@ -207,6 +208,13 @@ Returns the updated relationship to the user. Returns the updated relationship to the user. +### Getting site information + +**GET /api/v1/site** + +Returns an object containing the `title`, character limit (`max_chars`), and an object of `links` for the site. +Does not require authentication. + ### OAuth apps **POST /api/v1/apps**