Интерфейс отдыха для БД MySQL с ACL - PullRequest
4 голосов
/ 28 октября 2011

99% того, что делают REST API, - это управляемый интерфейс между клиентом и БД, и все же я не могу на всю жизнь найти какие-либо библиотеки, которые делают именно это.

Все библиотеки сосредоточены напредоставление REST-интерфейса разработчику, который затем устанавливает связь с базой данных.Мне кажется, что создавать библиотеку, которая уже взаимодействует с базой данных, не составляет никакого труда, и все, что нужно сделать разработчику, это определить некоторые правила ACL и включить некоторую логику здесь или там.

Итак, перед темЯ продолжаю и вкладываю свои мысли в действия, создавая подобную библиотеку, могу ли я просто спросить любого, кто обладает знаниями по этому вопросу;кто-нибудь реализовал что-нибудь подобное еще?Буду ли я заново изобретать колесо?

Кстати, я говорю строго о решениях на основе PHP, я ничего не имею против других языков, PHP - просто моя чашка чая.Но в этом отношении я также не нашел никаких реализаций на других языках.

И в случае, если мое объяснение не очень понятно, это, по сути, то, что я хотел бы:

<?php

class post_controller extends controller {

    protected static $config = array(
        'select'        => true,
        'insert'        => true,
        'update'        => true,
        'delete'        => false,

        'fields'            => array(
            'id'        => array(
                'select'    => true,
                'update'    => false
            ),
            'name'      => array(
                'select'    => true,
                'update'    => true
            ),
            'content'   => array(
                'select'    => true,
                'update'    => true
            )
        )
    );

    /**
     * GET, POST, DELETE are implemented already by the parent controller
     * Just overriding PUT to modify the content entry
     */
    function put($data) {
        $data->content = htmlentities($data);
        return parent::put($data);
    }

}

?>

Заранее благодарим всех, кто высказал свое мнение и извинился, если это не правильный вопрос Stackoverflow.

Редактировать:

Чтобы уточнить, этот тип сервиса будет для конкретного использованияВ таких случаях я не представляю, что это можно использовать для любого типа веб-службы.

1 Ответ

0 голосов
/ 10 ноября 2011

Я создал подобную систему для SOAP и должен сказать, что это очень легко сделать.Я не видел никаких готовых библиотек, которые бы помогли вам это сделать (и я сомневаюсь, что они существуют - см. Следующий абзац), но вам не потребуется несколько часов, чтобы создать собственное решение (максимум день - с тестированием).и документация включена).

Это совсем другой вопрос, если вы действительно хотите это сделать.REST может (неправильно) использоваться для этой цели, но он предназначен для манипулирования ресурсами.Записи в базе данных очень редко имеют однозначное сопоставление с ресурсами.Если они делают в вашем случае (как они сделали в моем), то не стесняйтесь делать это, в противном случае было бы лучше предоставить надлежащий REST API.Зачем выставлять свою внутреннюю структуру БД миру?YMMV, конечно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...