Delphi внедряет REST-сервер

У меня есть база данных mysql на сервере, и я вставляю в нее данные, используя написанный мной скрипт. Я должен открыть www.mywebsite.com/rest/create.php?param=value&param2=value2 чтобы создать новый ресурс, я должен открыть другой php-файл для редактирования элемента и так далее. Это основной подход: php-файл принимает некоторые параметры, а затем сохраняет файлы в базе данных.

я использую TIdHTTP потому что у меня есть возможность сделать что-то вроде:

TIdHTTP1.Get(www.mywebsite.com/rest/create.php?param=value&param2=value2);

create.php страница возвращает некоторые данные, закодированные в формате json. В моем приложении для Android я создал отдыхающий клиент, который может анализировать json, полученный в ответ на страницу php. Например, если я позвонил .../show.php?id=3 результат страницы — json с моими данными; позже приложение для Android проанализирует их и покажет пользователю некоторые результаты.


Вопрос

Вместо звонка www.mywebsite.com/rest/create.php?param=value&param2 = значение2 Я хотел бы иметь возможность сделать что-то подобное www.mywebsite.com/rest/create/?param=value&param2 = значение2. В основном я не хочу использовать имя файла в * .php, но я хочу использовать 2-й тип URI без имени файла.

Проблема в том, что это мой первый раз, и я не знаю, что делать.

Возможное решение. После прочтения Expert Delphi Я нашел возможное решение. Я мог бы создать WebBroker сервер для Linux (так что я могу экспортировать модуль Apache * .so), реализовать некоторые действия, как это:

введите описание изображения здесь

Когда есть запрос к / rest / create / (используя событие OnAction), я могу запустить TIdHTTP1.Get(www.mywebsite.com/rest/create.php?param=value&param2=value2); и сохранить результат. Таким образом, я могу открыть www.mywebsite.com/rest/create/ по мере необходимости и сохранить данные. Может ли indy выполнить запрос get, даже если он находится на машине с Linux (как модуль apache)? Я видел, что автономный сервер работает под управлением indy, поэтому я думаю, что indy должен работать с модулем apache.

К сожалению, я довольно новичок в таких вещах, на самом деле я также не знаю, что искать в Интернете, чтобы найти решение. Мое решение может сработать, но я уверен, что для этого есть правильный и эффективный способ.

ЗаметкаЭто просто идея после некоторых исследований, которые я провел, и я не уверен, что это правильный способ сделать то, что мне нужно. Вместо того, чтобы делать то, что я написал выше, мне просто нужно что-то делать с PHP или Apache? Есть ли другой стандартный (и лучший) способ создания службы REST?

4

Решение

Ваша проблема не на стороне Delphi, а на стороне сервера.

Если вам нужен URL / rest / create /, вам просто нужно создать папку «create» в папке «rest» на вашем сервере и поместить в нее файл index.php.

Или вы можете использовать правила перезаписи URL в файле .htaccess.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]