Ресурсы GraphQl

Web

авторы graphQl хотели добиться максимальной гибкости при взаимодействии клиента и сервера. Сервер не должен знать обо всех клиентских версиях и набора данных в каждый момент. А поиск должен проходить по переданным клиентам условиям и с подтягиванием указанных клиентом связей

Если брать graphQl целиком - он слишком объемен и сложен. Возможность указать клиенту условия, а также связи дает потенциальную возможность злоумышленнику загрузить сервер, положить его, Достаточно запросить данные друзей друзей друзей. Для защиты от перегруза каждый придумывает свои механизмы
Давно еще нас учили не доверять клиенту, а здесь у него полная свобода

Перетягивание всего механизма graphql слишком объемно и сложно, особенно для простых проектов.

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

Читать дальше →

  • Автор: kosmom
  • Просмотров: 23
  • Комментариев: 0
  • Создан: 02.01.2023 16:14

Полиморфное отношение к множеству одинаковых сущностей в Eloquent Laravel

Web

У вас есть общая таблица (полиморфная) которая может хранить общие записи разных моделек.
Например у вас есть модель комментариев, которые есть у постов и у видео. И вы хотите комментарии к постам делить на обычные комментарии (одна коллекция) и премиум комментарии (другая коллекция).
Чтобы ресурс вам возвращал каждый из типов в отдельности.
По умолчанию связь идет через поля entity_id и entity_type
Через них и проходит вся магия.

Читать дальше →

  • Автор: kosmom
  • Просмотров: 596
  • Комментариев: 0
  • Создан: 12.04.2021 18:09

Продвинутый механизм файлового логирования

Web

Приветствую тех кто повязан в вебе. Сегодня обсуждение небольшого вопроса связанного с попыткой организовать правильное файловое логирование
Очередное нестандартное решение стандартной проблемы. Кому интересны необычные подходы - прошу. Кто считает что если есть стандартные решения и нужно всегда ими пользоваться - проходите мимо.

Я буду писать в ключе PHP, но мышление применимо и к любому другому серверному языку.

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

Читать дальше →

  • Автор: kosmom
  • Просмотров: 374
  • Комментариев: 0
  • Создан: 22.01.2021 11:30

Временная зона и боль

Web

Что такое временная зона и почему с ней столько проблем. Дело даже не в том что в базе данных нужно хранить все даты с привязкой к единой зоне, например UTC+0 или UTC+3 (если вы живете в МСК)

чтобы все даты были в одном формате. Пока отменен переход с зимнего времени на летнее - всё будет спокойно. Если такое произойдет - некоторые события могут сбиться.

Читать дальше →

  • Автор: kosmom
  • Просмотров: 467
  • Комментариев: 0
  • Создан: 07.08.2020 16:18

Апи Прокси для хостинга на шаред хостинге

Web

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

Сделать себе проксю можно посредством облачного шаред хостинга стоимостью от 9 руб в месяц.

Читать дальше →

  • Автор: kosmom
  • Просмотров: 1215
  • Комментариев: 0
  • Создан: 11.07.2018 07:15

Правильная Ориентация при заливке изображений JPEG

Web

Замечали такую замечательную вещь. Получив изображение из фотоаппарата — вы вкладываете его на сайт, а загружается оно повернутым на 90 градусов? Что же это за бяка такая, почему крупные ресурсы вроде контакта заливают изображение правильно?
Чем наш сервис то хуже? Почему в базовом PHP и GD так криво настроено чтение исходных изображений?..
А код у вас выглядит примерно так?

<?php
$prop=getimagesize($filename);
switch($prop[2]){
  case IMAGETYPE_JPEG:
    $image = imagecreatefromjpeg($filename);
    break;
  case IMAGETYPE_GIF:
    $image = imagecreatefromgif($filename);
    break;
  case IMAGETYPE_PNG:
    $image = imagecreatefrompng($filename);
    break;
  }

Тогда этот материал будет для вас полезен

Читать дальше →

  • Автор: kosmom
  • Просмотров: 2556
  • Комментариев: 3
  • Создан: 11.03.2014 13:34

Объединяем CSS и JS файлы

Web

Сжатие файлов путем объединения схожих между собой файлов

В продолжении темы сжатия CSS и JS файлов — можно добиться еще большей производительности при загрузки страницы, объединив между собой схожие по смыслу JS и CSS файлы. Если волею судьбы — во всех страницах проекта используются одни и те же JS файлы (либо все JS файлы в папке) — мы можем слепить их в один файл и к серверу будет меньше обращений в итоге.

Читать дальше →

  • Автор: kosmom
  • Просмотров: 1187
  • Комментариев: 0
  • Создан: 19.02.2014 12:11

PHP Fatal error: Allowed memory size of . Хватит. Давайте решим проблему

Web

Fatal error: Allowed memory size ... nooooooo

Частенько ли приходилось встречать ошибку рода

Fatal error: Allowed memory size of 67108864 bytes exhausted (tried to allocate 544328 bytes) in …

Давайте устраним ее раз и навсегда...

Читать дальше →

  • Автор: kosmom
  • Просмотров: 11179
  • Комментариев: 0
  • Создан: 05.07.2013 17:18

Вычисление математических формул на PHP и Javascript

Web

Привет всем. Сегодня речь пойдет о задаче вычисления заданной пользователем функции. Например, мы делаем сервис для постройки графиков с возможностью задать функцию, или делаем некий аналог Excel, в котором по заданным формулам необходимо провести вычисления.

Решение мы будем искать на самых простых серверных и клиентских языках - PHP и Javascript.

Читать дальше →

  • Автор: kosmom
  • Просмотров: 3985
  • Комментариев: 0
  • Создан: 28.05.2013 16:12

Реализация качественного вывода данных. ч3. Сортировка

Web

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

добавляем сортировку и вообще красотень

Читать дальше →

  • Автор: kosmom
  • Просмотров: 841
  • Комментариев: 0
  • Создан: 28.12.2012 13:05