Задать вопрос

Первый API-сервер на Kohana — с чего начать?

Задача:

Реализовать платёжный шлюз для разных платёжных систем (в частности пока что для Yandex.Money и WebMoney). Платежи должны проходить через шлюз, данные о них сохраняются в БД, о результате платежа отправляется ответ приложению. В последствии этим шлюзом будут пользоваться другие проекты.

В общем должно получиться что-то вроде своей маленькой робокассы или интеркассы: API для работы с другим API.

Никак не могу четко продумать архитектуру будущего сервера API. Искал хоть какой то материал, везде описывается как например написать RESTful API приложение (сервер), то есть как организовать общение сервера и клиента Но нигде нет примеров или мануалов как правильно написать классы, сами методы, как по запросу определять какой метод нужно вызвать (с учетом использования mvc паттерна, но не суть). Нужно учитывать, что в будущем нужно будет реализовывать поддержку всё больших платёжных систем.

Может кто-то поделиться опытом, или посоветовать компетентный ресурс/материал для углубленного изучения?

P.S. в PHP да и в программировании вообще далеко не профи, мало писал больших проектов, потому, может, не совсем ясно пояснил проблему.
  • Вопрос задан
  • 3802 просмотра
Подписаться 5 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
@ZoorGan
Приведу небольшой пример самой примитивной реализации.
Роутинг:
Route::set('default', '/<controller>/<action>');

Контроллер:
class Controller_User extends Controller {

	public function action_get_by_id()
	{
                $user_id = $this->request->post('user_id');
                $user = DB::select()->from('users')->where('id','=',$user_id)->execute();
		$this->response->body(json_encode($user));
	}
}


Мы банально отдали json строку ответом на POST запрос на адрес: site.ru/user/get_by_id. В POST запросе мы отправили переменную user_id, которую обработали и приняли в нужном экшене. Этот код не является эталоном, но принцип думаю ясен. От вас требуется написать базовый контроллер для всех апишных контроллеров и учесть в нем обработку заголовков, унифицировать ответы на запросы и пр.
В качестве примера посмотрите на этот модуль: https://github.com/samkeen/kohana-simple-REST . Он довольно простой и с моей точки зрения удобный, хотя работу с БД в нем я бы убрал.
Ответ написан
Комментировать
@maclaud777 Автор вопроса
Посмотрел, можно сделать проще. Я наверно не совсем правильно сформулировал вопрос. Но проблему уже почти решил сам. Спасибо.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы