Не совсем так, какова ваша цель, но вот 3-4 решения, которые могут работать:
Общие решения
Перепишите
Это, вероятно, самый обычный способ получения чистых URI для вашего API. Если вы хотите, чтобы пользовательская часть user.json была динамической, вы можете использовать mod_rewrite (опять же с учетом Apache), чтобы переписать ваши URL-адреса в скрипт обработчика php. Если вы идете по обычному маршруту в стиле RESTful URL, вы, возможно, захотите использовать его в любом случае для получения чистых /
разделенных URL.
# For grabbing all users
RewriteEngine on
RewriteRule ^users\.json rest.php [L]
# For grabbing one particular user
RewriteEngine on
RewriteRule ^([a-z0-9]+)\.json rest.php?user=$1 [L]
Где rest.php - ваш скрипт-обработчик PHP.
Перезапись URL-адреса без перезаписи мода
Если вы не хотите использовать mod_rewrite, вы также можете сделать что-то вроде
example.com/rest.php/users.json
example.com/rest.php/user-id.json
или даже
example.com/rest.php/user-id
example.com/rest.php/user/user-id
Где rest.php - ваш скрипт-обработчик PHP. Вы можете получить user-id
из URL (или URI, если мы говорим о терминах RESTful), используя $_SERVER
global с $_SERVER['REQUEST_URI']
.
Другие решения
Изменение имени загрузки с помощью Content-Disposition:
Полагаю, вы хотите добавить заголовок Content-Disposition ...
<?php
header('Content-Disposition: attachment; filename="users.json"');
?>
Это заставит файл загружаться как user.json. Обычно такое поведение не ожидается для REST API, но из-за того, как был сформулирован ваш вопрос, я решил, что я его добавлю.
AddHandler (или AddType)
Предполагая, что вы используете сервер Apache, вы также можете просто использовать директиву AddHandler
, чтобы файлы расширения .json
обрабатывались так, как будто они php.
AddHandler application/x-httpd-php .json
Предупреждение. Другие простые файлы .json будут обрабатываться как PHP, поэтому вы, вероятно, захотите установить это в файле .htaccess в каталоге со сценарием PHP. Это будет хорошо работать для этого URI, но не идеально, если вы выставляете много URI