2012-03-17 5 views
0

У меня возникла эта идея, которая появляется у меня в голове уже 2 недели. Я, наконец, создал несколько случаев и планы относительно того, где я хочу пойти с этим проектом. Мне нужно будет создать как веб-приложение (ASP.NET), так и настольное приложение (Java). Оба этих приложения должны иметь базы данных sync'd.Создание API (с PHP)

Я думал о создании публичного API через мою базу данных, чтобы мои интерфейсные и третьи стороны могли связываться с базой данных. Но я никогда не пытался что-то вроде этого раньше. До сих пор я проводил выходные, читая информацию о том, как я могу это сделать, и я получил довольно хорошую идею. У меня есть некоторые вопросы/сомнения в настоящее время, и я надеялся, что кто-то может мне помочь.

1) Я все еще в университете, и у меня нет работы, поэтому мои карманы не идут очень глубоко. Я подумывал написать API в PHP, у меня уже есть неограниченная учетная запись хостинга, и еще я буду вынужден покупать .NET-хостинг, который может оказаться довольно дорогостоящим. Однако мои знания PHP довольно ограничены для анализа ввода/защиты пользователей. Было бы разумно искать (e) книгу вокруг этой темы, или я буду в порядке с онлайн-учебниками, есть ли у вас какие-либо предложения о том, где искать? Должен ли я нарисовать время для написания возможного уязвимого PHP-API или посмотреть другие варианты?

2) До сих пор мне никогда не приходилось заглядывать в библиотеки PHP. Мне было интересно, следует ли мне изучить некоторые из них (например, cakePHP), чтобы помочь мне разработать API.

3) У меня есть опыт внедрения Twitter/Linkedin в их API, поэтому я думал использовать OAuth (v2), чтобы люди могли использовать мой API. Является ли реализация OAuth для вашего API большой работой? Является ли он достаточно документированным для тех, у кого есть только базовые знания PHP? Если вы когда-либо использовали его в своем API, каков был ваш опыт?

4) Если бы этот проект когда-либо начинался, было бы разумно заглянуть в его размещение в облаке. Должен ли я в настоящее время думать о чем-то, поэтому возможна интеграция с облаками в будущем?

5) Для веб-приложения существует ли (большая) разница в производительности между использованием API или непосредственным подключением к базе данных?

6) Любая рекомендуемая лекция или советы приветствуются. Это первый раз, когда я буду пытаться что-то такое большое (как в функциях & требуется знание).

+1

Извините, но этот вопрос слишком широк для переполнения стека. Вернее, эти шесть вопросов. – Ryan

+0

Ваше сообщение содержит много, много вопросов и сообщений здесь должно быть более конкретным. Почему бы вам не попробовать реализовать API самостоятельно, и когда вы сталкиваетесь с проблемой, приходите и публикуете об этом конкретном. – Lix

+0

ah ok:/ Просто ненавижу создавать что-то, а потом видеть, что это могло быть сделано намного проще/безопаснее. – Reinard

ответ

2

1) Разработка простого API не так уж сложна с PHP, если у вас есть опыт работы на других языках. Конечно, каждый язык имеет свой собственный путь, и когда дело доходит до оптимизации и тому подобного, вам может понадобиться еще несколько знаний PHP.

2) Использование фреймворка PHP определенно поможет с множеством аспектов. Я использую symfony 2 для всех моих проектов PHP. Я действительно предлагаю проверить его. Это развязанная структура, и вы можете использовать отдельные компоненты из фреймворка. Он легкий и быстрый, и предлагает отличные инструменты для создания того, что вы хотите. What is symfony? объясняет преимущества. Кроме того, использование ORM (я предпочитаю Doctrine) - это вариант, но это целая тема.

3) Если вы решили использовать symfony2, для этого вы можете использовать bundles (библиотеки). Это не должно быть слишком сложно реализовать даже без рамки, но у меня нет опыта в этой области.

4) У меня нет опыта в облаке, поэтому не могу комментировать это.

5) Будет разница в производительности, поскольку вы добавляете в свой проект еще один слой, но будет ли он большим или малым, зависит от API, базы данных и т. Д. Но использование API будет означать стандартный способ взаимодействовать с базой данных, поэтому даже с разницей в производительности это может быть полезно с точки зрения согласованности и времени разработки (вам не придется иметь дело с различными платформами, чтобы делать материал базы данных).

6) Полезность API в значительной степени зависит от приложения, и я не могу сказать, перегружает ли он расходы без конкретной информации о проекте. Но стандартизированный способ общения с хранилищем данных - это, как правило, хорошая идея при работе с несколькими платформами и языками IMO. Поскольку я не знаю, как много вы знаете о PHP, я не могу комментировать, если это будет стоить вашего времени. Я бы пошел на это, если будет достаточно времени, так как изучение PHP добавит еще несколько инструментов в ваш арсенал, и это станет хорошей возможностью улучшить себя как разработчика.

+0

благодарит за ответ! Сегодня вечером проверит symfony2. – Reinard

Смежные вопросы