This repository has been archived on 2024-07-22. You can view files and clone it, but cannot push or open issues or pull requests.
Zaimki/routes/api.vue

79 lines
3.1 KiB
Vue
Raw Normal View History

2020-11-10 14:41:56 -08:00
<template>
<div class="container">
<h2>
<Icon v="laptop-code"/>
<T>api.header</T>
</h2>
<section v-for="group in groups" v-if="group.enabled" class="py-2">
<h3>
<Icon :v="group.icon"/>
<T>{{group.header}}</T>
</h3>
<ul>
<li v-for="([method, path, queryString], endpoint) in group.endpoints" class="my-3">
<p>
<span class="badge badge-primary">{{method}}</span>
<code>{{path}}</code>
<a v-for="example in config.api.examples[endpoint]" :href="$base + example" class="badge badge-light border mx-1" target="_blank" rel="noopener">
<Icon v="cog"/>
<T>api.example</T>
</a>
</p>
<p v-if="queryString" class="mb-0 small">
<T>api.query</T>:
</p>
<ul v-if="queryString" class="small">
<li v-for="(description, param) in queryString">
<code>{{param}}</code> <span v-html="description"></span>
</li>
</ul>
</li>
</ul>
</section>
</div>
</template>
<script>
import {head} from "../src/helpers";
export default {
data() {
return {
groups: [{
enabled: this.config.pronouns.enabled,
2020-11-10 14:41:56 -08:00
header: 'home.header',
icon: 'tags',
endpoints: {
pronouns_all: ['GET', '/api/pronouns'],
pronouns_one: ['GET', '/api/pronouns/{pronoun}', {
'examples[]': 'Overwrite the default example sentences with custom ones. For each of them use the following format: <code>{sentenceSingular}|{sentencePlural}|{isHonorific}</code>. If <code>sentencePlural</code> is missing, if defaults to being the same as <code>sentenceSingular</code>. <code>isHonorific</code> can be <code>0</code> (default) or <code>1</code>.',
}],
},
}, {
enabled: this.config.sources.enabled,
header: 'sources.header',
icon: 'books',
endpoints: {
sources_all: ['GET', '/api/sources'],
2020-12-04 13:09:57 -08:00
sources_one: ['GET', '/api/sources/{id}'],
2020-11-10 14:41:56 -08:00
},
}, {
enabled: this.config.nouns.enabled,
header: 'nouns.header',
icon: 'atom-alt',
endpoints: {
nouns_all: ['GET', '/api/nouns'],
nouns_search: ['GET', '/api/nouns/search/{term}'],
},
}],
};
},
head() {
return head({
title: this.$t('api.header'),
});
},
}
</script>