Я бы посмотрел на материал Openstreetmap http://wiki.openstreetmap.org/wiki/Android , особенно этот http://wiki.openstreetmap.org/wiki/Osmdroid замена карты Андроидов
Добро пожаловать в SO. Вы рассматривали использование Zend framework для этого приложения? Я написал об этой теме до , и если вы используете Zend, я, вероятно, мог бы оказать дополнительную помощь. Это, безусловно, поможет вам пройти мимо основ.
HTH,
-aj
Не совсем такая, какова ваша цель, но здесь есть 3-4 решения, которые могут работать:
Это, скорее всего, наиболее традиционный способ получения чистых URI для вашего API. Если вы хотите, чтобы пользовательская часть user.json была динамической, вы можете использовать mod_rewrite (опять же предполагая, что Apache) переписать ваши URL-адреса на скрипт обработчика php. Если вы собираетесь использовать обычный URL-адрес маршрута в стиле RESTful, вы, вероятно, захотите использовать его для достижения чистых /
разделенных 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.
Если вы не хотите использовать 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
с $_SERVER['REQUEST_URI']
.
Я считаю, что вы хотите добавить заголовок Content-Disposition . ..
<?php
header('Content-Disposition: attachment; filename="users.json"');
?>
Это заставит файл загружаться как user.json. Обычно это не поведение, ожидаемое для REST API, но из того, как был сформулирован ваш вопрос, я решил, что выброшу его там.
Предполагая, что вы используете сервер Apache, вы также можете просто использовать директиву AddHandler
, чтобы файлы расширения .json
обрабатывались так, как они являются php .
AddHandler application/x-httpd-php .json
Предупреждение. Другие простые .json-файлы будут обрабатываться как PHP, поэтому вы, вероятно, захотите установить это в файле .htaccess в каталоге с помощью PHP-скрипта. Это отлично работает для этого URI, но не идеально, если вы подвергаете много URI
Проблема в этой строке:
header("Content-type: application/json");
Я знаю, что это выглядит как правильный способ (в конце концов, application/json
есть официальный MIME-тип для JSON контент), но это заставляет большинство браузеров представить вам диалог загрузки файлов, когда вы просто хотите увидеть текст. Вы можете использовать кодировку text/plain
, чтобы избежать этого. Обратите внимание, что ваше приложение AJAX / iPhone / ..., вероятно, не заботится о типе контента, поэтому ваш API будет работать в обоих случаях.
Также см. этот пост в блоге , который предоставляет еще несколько контекстов.
application/json
является официальным, хотя я думаю. Возможно, с text/json
вы можете обмануть браузер, показывая его как обычный текст, но в этом случае text/plain
будет эквивалентным, я думаю.
– Wim
31 January 2010 в 00:12
application/json
.
– Kitson
3 February 2010 в 22:42
text/json
и не имею проблем с IE6-8, FF3 и Chrome, но я не знаю о вещах WebKit, таких как iPhone.
– Kitson
3 February 2010 в 22:45