Я разрабатываю свою собственную PHP-библиотеку, и я бы хотел назвать веб-службы RESTful из моего API. Может ли это быть сделано на PHP, и если да, то каковы основы этого?
Поскольку REST – это применение тех же методов протокола HTTP к дизайну архитектуры клиент-сервер, и PHP уже настолько хорош для обработки запросов HTTP-протокола, таких как GET и POST. PHP специально подходит для упрощения создания служб REST.
Помните, что REST – это приложение тех же http-шаблонов, которые уже существуют.
Поэтому, если у вас есть приложение, которое делает что-то вроде:
Чтобы сделать это REST, вам необходимо:
Вывод в JSON или XML . И это все!
Это довольно легко.
Теперь сложной задачей является создание вашего API (функций и URL-адресов), который вы создадите, чтобы быть дружелюбным программистом.
В этом случае я предлагаю вам взглянуть на API-интерфейс flickr, так как пример очень удобный для разработчиков, легко угадать и имеет хорошую документацию.
Для получения дополнительной информации об API смотрите эту презентацию: Как создать хороший API и почему это имеет значение (Джошуа Блох)
Наконец, RESTful API должен реализовывать также методы PUT и DELETE протокола http, когда это имеет смысл
Например, если у вас было действие delete в вашем api, указанная служба должна получить метод удаления из протокола http. Вместо более распространенной вещи отправки параметра действия в качестве части запроса на отправку.
Изменить: Заменено «Php по умолчанию по умолчанию»: «Поскольку REST – это приложение тех же методов протокола HTTP для проектирования архитектуры клиент-сервер, а PHP уже настолько хорош для обработки запросов HTTP-протокола, как GET и POST. PHP специально подходит для упрощения создания сервисов REST ».
А также добавили последнее замечание о том, что вы должны реализовать подходящие методы PUT или DELETE, когда это действие имеет смысл для вашего api.
Вы можете посмотреть эту статью и последующие действия: http://www.gen-x-design.com/archives/create-a-rest-api-with-php/
Ваш вопрос очень открытый, поэтому этот учебник может стать лучшей отправной точкой.
Ссылка выше больше не работает, поэтому ознакомьтесь с этим руководством:
http://net.tutsplus.com/tutorials/other/a-beginners-introduction-to-http-and-rest/
Я разработал класс, который является родным классом RAP класса SoapServer класса REST.
Вы просто включаете файл RestServer.php, а затем используете его следующим образом.
class Hello { public static function sayHello($name) { return "Hello, " . $name; } } $rest = new RestServer(Hello); $rest->handle();
Затем вы можете делать такие звонки:
http://myserver.com/path/to/api?method=sayHello&name=World
(Обратите внимание, что не имеет значения, в каком порядке параметры содержатся в строке запроса. Кроме того, имена ключей параметров, а также имя метода не зависят от регистра.)
Не помешает вернуться к исходному источнику термина REST и быть уверенным, что вы понимаете, что это значит.
Если вы думаете о клиентской стороне вещей, я бы предложил проверить PEST Мэтта Суковски.
Вы найдете репозиторий на GitHub: https://github.com/educoder/pest
Также ознакомьтесь с этой веткой: PHP REST Clients
Обновление 2013/12/13:
Это очень живой проект с открытым исходным кодом, Мэтт Суковски передал его новым опекунам этим летом, потому что он не чувствовал, что может сэкономить достаточно времени, и с тех пор было много и много коммитов. Так что Pest лучше, чем когда-либо, для отдыха в PHP 🙂