Open up Paginator::$documents for read
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 45/100
Línea de trabajo
Comienza por la clase Elasticsearch\Paginator e inspecciona cómo consume sus documentos el normalizador de colecciones de Hydra. Usa el ejemplo de decorador del issue para verificar que las agregaciones de Elasticsearch se pueden leer sin reemplazar el proveedor nativo; el trabajo estará terminado cuando los documentos sigan siendo de solo lectura, pero sean accesibles públicamente.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Description
In Elasticsearch\Paginator, the results of the query stored in $this->documents are private readonly.
Since the property is readonly anyway, would you be willing to make it public readonly?
A lot of the time, Elasticsearch returns metadata such as aggregations, necessary for building feature-rich search experiences.
It is a total waste of time to implement a custom Elasticsearch provider. The native one is great and does a lot of heavy lifting. If the property was open for read, I could simply decorate the normalizer, see example.
Example
#[AsDecorator('api_platform.hydra.normalizer.collection')]
class ElasticsearchNormalizer implements NormalizerInterface, NormalizerAwareInterface
{
public function __construct(
private NormalizerInterface $normalizer,
) {
}
public function normalize(mixed $object, string $format = null, array $context = []): array
{
if (!$object instanceof Elasticsearch\Paginator) {
throw new \LogicException();
}
return array_merge(
$this->normalizer->normalize($object, $format, $context), // produces a valid hydra:collection
['aggregations => $object->documents['aggregations']], // metadata returned by Elasticsearch read from the raw result
));
}
}
- Lenguaje dominante
- PHP
- Estrellas
- 2.6k
- Forks
- 989
- Merge medio
- 1 d 22 h
- PR fusionados (30 d)
- 100
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de api-platform/core
-
JSON:API: resource schemas (`*.jsonapi`) have `properties` but no `type: object`Posiblemente ocupada @ousamabenyounes la tomó hace 3 días. Abierto
Dificultad 2/5 Menos de una hora Aptitud para principiantes 80/100
api-platform/core#8701 ·
Los mantenedores suelen responder en 1 día
-
JSON:API: `JsonApiCollectionBaseSchemaNoPagination` declares `data` as `type: array` without `items`Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
api-platform/core#8699 ·
Los mantenedores suelen responder en 1 día
-
[Json-Schema] Nested resources lost externalDoc and description dataPosiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abierto
Dificultad 3/5 1-2 días Aptitud para principiantes 68/100
api-platform/core#8721 ·
Los mantenedores suelen responder en 1 día
-
JSON:API: 404/405 router errors are empty, and error objects have a non-spec `type` memberPosiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abierto
Dificultad 3/5 1-2 días Aptitud para principiantes 50/100
api-platform/core#8704 ·
Los mantenedores suelen responder en 1 día
-
JSON:API: request documents with no `data`, no `type` or a wrong `type` are accepted with 201Abierto
Dificultad 3/5 1-2 días Aptitud para principiantes 62/100
api-platform/core#8703 ·
Los mantenedores suelen responder en 1 día
Todos los issues de api-platform/core
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Automattic/blocks-engine#3090 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
-
macOS
Dificultad 2/5 1-3 horas Aptitud para principiantes 83/100
beyondcode/herd-community#1771 ·
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 63/100
-
module: user interface priority: high severity: minor type: bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 1 día