• 2
  • 3
  • 4
  • 6

PHP, MySQL, JavaScript

Простой API gateway на базе PHP и Lumen

Простой API gateway на базе PHP и Lumen tutorial

Термин «микросервисы» сегодня у всех на слуху – внезапно это стало очень модно, и многие компании объявляют переход на этот архитектурный паттерн даже толком не разобравшись в нём. Впрочем, обсуждение полезности микросервисов оставим за пределами этой статьи.

Традиционно перед коллекцией микросервисов предлагается дополнительный слой – так называемый API gateway, который решает сразу несколько проблем (они будут перечислены позже). На момент написания этой статьи open source реализаций таких gateway почти нет, поэтому я решил написать свой на PHP с использованием микрофреймворка Lumen (часть Laravel). 

В этой статье я покажу насколько это простая задача для современного PHP!

Создание связей между таблицами с помощью phpmyadmin

Создание связей между таблицами с помощью phpmyadmin

В этой заметке мы научимся создавать связи между таблицами в базе данных MySQL с помощью phpmyadmin. Если по какой-то причине вы не желаете использовать phpmyadmin, смотрите приведенные ниже SQL-запросы.

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

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

Для начала, движок таблиц должен быть InnoDB. Только он поддерживает внешние ключи (foreign key). Если у вас таблицы MyISAM, почитайте как их конвертировать в InnoDB.

Для того, чтобы связать таблицы по полям, необходимо сначала добавить в индекс связываемые поля:

В phpmyadmin выбираем таблицу, выбираем режим структуры, выделяем поле, для которого будем делать внешнюю связь и кликаем Индекс.

index MySQLОбратите внимание на разницу между "Индекс" и "Уникальный". Уникальный индекс можно использовать, например, до поля id, то есть там, где значения не повторяются.

 

Это же действие можно сделать с помощью SQL-запроса:

ALTER TABLE `table_name` ADD INDEX ( `field_name` ) ;

Аналогично добавляем индекс (только в моем случае теперь уже уникальный или первичный) для таблицы, на которую ссылаемся, для поля id. Поскольку поле id у меня идентификатор, для него делаем первичный ключ. Уникальный ключ мог бы понадобится для других уникальных полей.

index MySQLС помощью SQL-запроса:

ALTER TABLE `table_name` ADD UNIQUE (`field_name`);

Теперь осталось только связать таблицы. Для этого кликаем внизу на пункт Связи:

phpmyadmin MySQL connections

Теперь для доступных полей (а доступны только проиндексированные поля) выбираем связь с внешними таблицами и действия при изменении записей в таблицах:

Connections with MySQL tablesЧерез SQL-запрос:

ALTER TABLE `table_name` ADD FOREIGN KEY ( `field_in_table_name_which_need_connect` ) REFERENCES `outer_table_to_connect` (`outer_field`) ON DELETE RESTRICT ON UPDATE RESTRICT ;

на этом все, таблицы связаны через foreign key.

Календарь google API php

Для ведения своих дел я пользуюсь календарём в телефоне. Одним нажатием он синхронизируется с google аккаунтом. А позже для сортировки, анализа проведённых событий я использую дополнительные сервисы (к примеру https://www.gcal2excel.com/ ) Естественно, они накладывают ряд ограничений и хотят денег. А позже подумал, ведь у google есть своё API https://developers.google.com/google-apps/calendar/v3/reference/calendarList/get POST https://www.googleapis.com/calendar/v3/calendars/calendarId/events/quickAdd https://developers.google.com/google-apps/calendar/quickstart/php Это, так мысли вслух, но если кто-то работал и осуществил проекто, то прощу присоединяться к обсуждениям

Итак по пунктам:

1. Переходим на https://console.developers.google.com/flows/enableapi?apiid=calendar&pli=1

Подключение Google Calendar API для приложения в Google API Console

Google API Console позволяет управлять приложением и контролировать использование API.

Поскольку у вас нет ни одного проекта, мы создадим новый. Ему будет назначено имя My Project.

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

 

 
 
 
 

MVSocialButtons

Share this post

Отправить в FacebookОтправить в Google BookmarksОтправить в OdnoklassnikiОтправить в Vkcom

Авторизация

Новые пользователи

  • RubenAbsex
  • ArtemAGFa
  • GennadiyHah
  • JorgeGrore
  • Bobbyphiva

Статистика сайта

ОС
Linux v
PHP
5.6.31
MySQLi
5.5.56-cll-lve
Время
08:02
Кэширование
Отключено
GZip
Отключено
Посетители
20569
Материалы
282
Количество просмотров материалов
249387
cassidy clay free pornmalay young girls sucking cockbeeg gallery hdchina young sexyoung inzestpornfree download sunny leon porn hd vedeos moviesxxx.biz Bangladeshi scandalfree daughter gangbangöld granny fikautumn riley porn video free download Bangladeshi scandalfree daughter gangbangöld granny fikautumn riley porn video free download mobile porn sexyoung inzestpornfree download sunny leon porn hd vedeos