Работа с огромными данными API-PLATFORM - PullRequest
0 голосов
/ 04 июня 2019

У меня есть сущность под названием Companies, которая имеет отношение OneToMany к другой сущности с именем CrmItems.

Entity / Company.php

/**
 * @ORM\OneToMany(targetEntity="App\Entity\CrmItems", mappedBy="company")
 * @ORM\JoinColumn(nullable=false, name="`CompanyID`", referencedColumnName="`company_id`")
 */
private $crmItems;

Entity / CrmItems.php

/**
 * @ORM\ManyToOne(targetEntity="App\Entity\Companies", inversedBy="crmItems")
 * @ORM\JoinColumn(nullable=false, name="company_id", referencedColumnName="`CompanyID`")
 */
private $company;

Проблема здесь в том, что одна компания может иметь 11000 наименований.Из-за этого, когда я запрашиваю http://localhost:8080/companies/2, я получил ошибку 502

enter image description here

Кажется, что размер заголовков слишком большой, связанный с X-Кэшируйте настраиваемый размер заголовка.

Я уже искал в интернете даже в API Platform Официальные документы https://api -platform.com / docs / v2.3 / extra / поиск и устранение неисправностей / # upstream-ошибка-отправленного-слишком-большого-заголовка-пока-чтения-заголовка-ответа-от-восходящего-502

Решение заключается в увеличении количества буферов fastcgi.

# Bigger buffer size to handle cache invalidation headers expansion
    fastcgi_buffer_size 32k;
    fastcgi_buffers 8 16k;

Iуже пытались увеличить безуспешно.

Есть ли хитрость для работы с огромными данными?API Platform поддерживает разбиение на страницы реляционных коллекций?

Спасибо!

1 Ответ

1 голос
/ 05 июня 2019

API Platform поддерживает разбиение на страницы реляционных коллекций?

Я никогда не задумываюсь в документах.

Если он действительно слишком большой, я бы подумал о другом дизайнеподход.Почему бы не использовать CrmItems и фильтр для компании.Таким образом, вы получаете их нумерацию страниц.

...