docs: Optimize /api links to skip trailing slash redirect.

Signed-off-by: Anders Kaseorg <anders@zulip.com>
This commit is contained in:
Anders Kaseorg 2024-02-14 17:42:15 -08:00 committed by Anders Kaseorg
parent e0339715cc
commit 80a6b12690
15 changed files with 15 additions and 15 deletions

View File

@ -327,7 +327,7 @@ above.
match the title of the endpoint from the OpenAPI `summary` field. match the title of the endpoint from the OpenAPI `summary` field.
1. Test your endpoint, pretending to be a new user in a hurry, by 1. Test your endpoint, pretending to be a new user in a hurry, by
visiting it via the links on `http://localhost:9991/api` (the API visiting it via the links on `http://localhost:9991/api/` (the API
docs are rendered from the Markdown source files on page load, so docs are rendered from the Markdown source files on page load, so
just reload to see an updated version as you edit). You should just reload to see an updated version as you edit). You should
make sure that copy-pasting the code in your examples works, and make sure that copy-pasting the code in your examples works, and

View File

@ -215,7 +215,7 @@ Django, TypeScript/JavaScript, and CSS.
Experts: Tim Abbott, Prakhar Pratyush Experts: Tim Abbott, Prakhar Pratyush
- Zulip's [**REST API documentation**](https://zulip.com/api), which is an - Zulip's [**REST API documentation**](https://zulip.com/api/), which is an
important resource for any organization integrating with Zulip, as important resource for any organization integrating with Zulip, as
well as the developers of our API clients. Zulip has a [nice well as the developers of our API clients. Zulip has a [nice
framework](../documentation/api.md) for writing API documentation framework](../documentation/api.md) for writing API documentation

View File

@ -44,7 +44,7 @@ team to tens of thousands of users. It has [hundreds of
features](https://zulip.com/features/) both large and small, and features](https://zulip.com/features/) both large and small, and
supports dedicated apps for iOS, Android, Linux, Windows, and macOS, supports dedicated apps for iOS, Android, Linux, Windows, and macOS,
all modern web browsers, several cross-protocol chat clients, and all modern web browsers, several cross-protocol chat clients, and
numerous dedicated [Zulip API](https://zulip.com/api) clients numerous dedicated [Zulip API](https://zulip.com/api/) clients
(e.g., bots). (e.g., bots).
A server can host multiple Zulip _realms_ (organizations), each on its A server can host multiple Zulip _realms_ (organizations), each on its

View File

@ -316,7 +316,7 @@ r = requests.patch(SERVER_URL + 'api/v1/realm',
``` ```
This is simply an illustration; we recommend making use of the [Zulip This is simply an illustration; we recommend making use of the [Zulip
Python API bindings](https://www.zulipchat.com/api) since they provide Python API bindings](https://zulip.com/api/) since they provide
a nice interface for accessing the API. a nice interface for accessing the API.
## Legacy endpoints used by the web client ## Legacy endpoints used by the web client

View File

@ -5,7 +5,7 @@ organization URL is a disruptive operation for users:
* Users will be logged out of existing sessions on the web, mobile and * Users will be logged out of existing sessions on the web, mobile and
desktop apps and need to log in again. desktop apps and need to log in again.
* Any [API clients](/api) or [integrations](/integrations/) will need * Any [API clients](/api/) or [integrations](/integrations/) will need
to be updated to point to the new organization URL. to be updated to point to the new organization URL.
We recommend using a [wildcard We recommend using a [wildcard

View File

@ -73,7 +73,7 @@ permanent organization:
* Users will be logged out of existing sessions on the web, mobile and * Users will be logged out of existing sessions on the web, mobile and
desktop apps and need to log in again. desktop apps and need to log in again.
* Any [API clients](/api) or [integrations](/integrations/) will need * Any [API clients](/api/) or [integrations](/integrations/) will need
to be updated to point to the new organization URL. to be updated to point to the new organization URL.
{start_tabs} {start_tabs}

View File

@ -72,7 +72,7 @@ In practice, guests should rarely encounter content from an **Unknown user**,
unless users in your organization frequently change their stream subscriptions unless users in your organization frequently change their stream subscriptions
or are [deactivated](/help/deactivate-or-reactivate-a-user). or are [deactivated](/help/deactivate-or-reactivate-a-user).
The only information guests can access about unknown users via the [API](/api) The only information guests can access about unknown users via the [API](/api/)
is which user IDs exist, and is which user IDs exist, and
[availability](/help/status-and-availability) updates for each user ID. [availability](/help/status-and-availability) updates for each user ID.

View File

@ -7,7 +7,7 @@
By default, any user can [change their name](/help/change-your-name). By default, any user can [change their name](/help/change-your-name).
You can instead prevent users from changing their name. This setting is You can instead prevent users from changing their name. This setting is
especially useful if user names are managed via an external source, and especially useful if user names are managed via an external source, and
synced into Zulip via the [Zulip API](/api), [LDAP][ldap-sync-data] or synced into Zulip via the [Zulip API](/api/), [LDAP][ldap-sync-data] or
another method. another method.
!!! tip "" !!! tip ""

View File

@ -282,7 +282,7 @@
<li> <li>
<div class="list-content"> <div class="list-content">
Build your own integrations with Zulips Build your own integrations with Zulips
easy-to-use <a href="/api">RESTful easy-to-use <a href="/api/">RESTful
API</a>, <a href="/api/installation-instructions">client API</a>, <a href="/api/installation-instructions">client
bindings</a>, <a href="/api/incoming-webhooks-overview">incoming bindings</a>, <a href="/api/incoming-webhooks-overview">incoming
webhooks</a>, <a href="/api/outgoing-webhooks">outgoing webhooks</a>, <a href="/api/outgoing-webhooks">outgoing

View File

@ -511,7 +511,7 @@
<li> <li>
<div class="list-content"> <div class="list-content">
Build your own integrations with Zulips Build your own integrations with Zulips
easy-to-use <a href="/api">RESTful easy-to-use <a href="/api/">RESTful
API</a>, <a href="/api/installation-instructions">client API</a>, <a href="/api/installation-instructions">client
bindings</a>, <a href="/api/incoming-webhooks-overview">incoming bindings</a>, <a href="/api/incoming-webhooks-overview">incoming
webhooks</a>, <a href="/api/outgoing-webhooks">outgoing webhooks</a>, <a href="/api/outgoing-webhooks">outgoing

View File

@ -238,7 +238,7 @@
</h1> </h1>
<p> <p>
<a href="/api/incoming-webhooks-overview">Creating custom integrations</a> is a breeze with <a href="/api/incoming-webhooks-overview">Creating custom integrations</a> is a breeze with
our well-documented <a href="/api">REST API</a>. our well-documented <a href="/api/">REST API</a>.
</p> </p>
<p> <p>
Zulip makes it easy to Zulip makes it easy to

View File

@ -22,7 +22,7 @@ Get Zulip notifications for your Capistrano deploys!
The `--user` and `--api-key` should be the email and API key of the Zulip The `--user` and `--api-key` should be the email and API key of the Zulip
bot created above. You can also put these values in a `~/.zuliprc` file on bot created above. You can also put these values in a `~/.zuliprc` file on
your Capistrano machine. See our [API docs](/api) for instructions on your Capistrano machine. See our [API docs](/api/) for instructions on
creating that file. creating that file.
!!! tip "" !!! tip ""

View File

@ -53,7 +53,7 @@ To learn more, see the [plugin's README](https://github.com/jenkinsci/zulip-plug
If not, create the stream and make sure you're subscribed to it. If not, create the stream and make sure you're subscribed to it.
1. Are your API key and email address correct? Test them 1. Are your API key and email address correct? Test them
using [our curl API](/api). using [our curl API](/api/).
1. Configure a Jenkins log recorder for **jenkins.plugins.zulip** 1. Configure a Jenkins log recorder for **jenkins.plugins.zulip**
and check why your messages fail to send. and check why your messages fail to send.

View File

@ -115,7 +115,7 @@
</a> </a>
</li> </li>
<li class="link-item navbar-dropdown-menu-inner-list-item"> <li class="link-item navbar-dropdown-menu-inner-list-item">
<a href="/api" target="_blank" rel="noopener noreferrer" class="navigate-link-on-enter navbar-dropdown-menu-link"> <a href="/api/" target="_blank" rel="noopener noreferrer" class="navigate-link-on-enter navbar-dropdown-menu-link">
<i class="navbar-dropdown-icon zulip-icon zulip-icon-file-text" aria-hidden="true"></i> {{t 'API documentation' }} <i class="navbar-dropdown-icon zulip-icon zulip-icon-file-text" aria-hidden="true"></i> {{t 'API documentation' }}
</a> </a>
</li> </li>

View File

@ -5,7 +5,7 @@
{{#tr}} {{#tr}}
Looking for our <z-integrations>integrations</z-integrations> or <z-api>API</z-api> documentation? Looking for our <z-integrations>integrations</z-integrations> or <z-api>API</z-api> documentation?
{{#*inline "z-integrations"}}<a href="/integrations/" target="_blank" rel="noopener noreferrer">{{> @partial-block}}</a>{{/inline}} {{#*inline "z-integrations"}}<a href="/integrations/" target="_blank" rel="noopener noreferrer">{{> @partial-block}}</a>{{/inline}}
{{#*inline "z-api"}}<a href="/api" target="_blank" rel="noopener noreferrer">{{> @partial-block}}</a>{{/inline}} {{#*inline "z-api"}}<a href="/api/" target="_blank" rel="noopener noreferrer">{{> @partial-block}}</a>{{/inline}}
{{/tr}} {{/tr}}
</div> </div>
<div class="bot-settings-tip" id="personal-bot-settings-tip"> <div class="bot-settings-tip" id="personal-bot-settings-tip">