Description
Useful lib to use with your rest api to encode/decode internal id values.
icanhazstring/expressive-hashids-middleware alternatives and similar libraries
Based on the "API" category.
Alternatively, view icanhazstring/expressive-hashids-middleware alternatives based on common mentions on social networks and blogs.
-
API Platform
πΈοΈ Create REST and GraphQL APIs, scaffold Jamstack webapps, stream changes in real-time. -
Restler
Simple and effective multi-format Web API Server to host your PHP API as Pragmatic REST and/or RESTful API -
wsdl2phpgenerator
DISCONTINUED. Simple utility and class library for generating php classes from a wsdl file. -
OverblogGraphQLBundle
This bundle provides tools to build a complete GraphQL API server in your Symfony App. -
Pinterest Bot for PHP
DISCONTINUED. This PHP library will help you to work with your Pinterest account without using any API account credentials. -
Slack for PHP
A simple PHP package for sending messages to Slack, with a focus on ease of use and elegant syntax. -
Drest
Quickly and easily expose Doctrine entities as REST resource endpoints with the use of simple configuration with annotations, yaml, json or a PHP array. -
chubbyphp-framework
A minimal, highly performant middleware PSR-15 microframework built with as little complexity as possible, aimed primarily at those developers who want to understand all the vendors they use. -
cidaas SDK for php
With this SDK, you can integrate cidaas smoothly and with minimal effort into your PHP application. It enables you to map the most important user flows for OAuth2 and OIDC compliant authentication. Secure β Fast β And unrivaled Swabian. -
yii2-fractal
A set of utils and actions for build API following JSON:Api specification, based on league/fractal
InfluxDB - Purpose built for real-time analytics at any scale.
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of icanhazstring/expressive-hashids-middleware or a related project?
Popular Comparisons
README
icanhazstring/expressive-hashids-middleware
PSR-15/PSR-7 compliant middleware using ivanakimov/hashids.php
Install
You can install the expressive-hashids-middleware library with composer:
$ composer require icanhazstring/expressive-hashids-middleware
Workflow
The main purpose of the middleware is to obfuscate internal IDs from the outside world. That said, you don't have to change your internal id handling (like autoincrement in your db) to use this middleware.
Any incoming request in the form of /api/resource/{id}
will be decoded using this middleware.
So for example (default configuration):
/api/user/ABC
(where ABC
is the encoded value) will produce request attributes like this:
$attributes = $request->getAttributes();
/*
[
'id' => 'ABC',
'__hashids_identifier' => 1
]
*/
The middleware won't override attributes! You can use the
HashidsMiddleware::ATTRIBUTE
constant to easy access this attribute.
Usage
Using expressive
Include the HashidsConfigProvider
inside your config/config.php
:
$aggregator = new ConfigAggregator([
...
\icanhazstring\Hashids\HashidsConfigProvider::class,
...
]);
Make sure the HashidsConfigProvider
is included before your autoload files!
Custom configuration
If you want to change parameters of Hashids
, simply provide the
HashidsConfigProvider::CONFIG_KEY
inside your autoload configuration and change the values to your desire.
return [
\icanhazstring\Hashids\HashidsConfigProvider::CONFIG_KEY => [
'salt' => '',
'minHashLength' => 0,
'alphabet' => 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890',
'resource_identifiert' => 'id'
]
];
Using the strategy
If you want, you can use the hydration/extraction strategy provided to decode/encode data from and into your objects.
To use the strategy, simply use the provided delegator HashidsHydratorDelegatorFactory
and append
it as delegator for your hydrator.
class ConfigProvider
{
public function __invoke(): array
{
return [
'hydrators' => [
'delegators' => [
ArraySerializable::class => [
\icanhazstring\Hashids\Hydrator\HashidsHydratorDelegatorFactory:class
]
]
],
];
}
}