# API Tools

**URL:** https://discourse.laminas.dev/c/questions/api-tools/8.md

[Latest](https://discourse.laminas.dev/latest.md) · [Categories](https://discourse.laminas.dev/categories.md) · [Tags](https://discourse.laminas.dev/tags.md)

---

## [About the API Tools category](https://discourse.laminas.dev/t/about-the-api-tools-category/23)

<div class="topic-metadata">

**Author:** [@matthew](https://discourse.laminas.dev/u/matthew)\
**Replies:** 0

</div>

Get help with API Tools (formerly Apigility) applications and modules here! Please restrict questions in this category to: API Tools applications. Questions about individual API Tools modules (e.g., api-tools-api-prob…

---

## [Can't get "Package" to show in Api-Tools Admin UI](https://discourse.laminas.dev/t/cant-get-package-to-show-in-api-tools-admin-ui/3737)

<div class="topic-metadata">

**Author:** [@dickdono](https://discourse.laminas.dev/u/dickdono)\
**Replies:** 1\
**Last updated:** [July 27, 2024, 10:12am UTC](https://discourse.laminas.dev/t/cant-get-package-to-show-in-api-tools-admin-ui/3737 "2024-07-27T10:12:32Z")

</div>

I’ve recently done a composer bump to get our Api-Tools up to the latest (and apparently, last :slightly\_frowning\_face:) version of Api-Tools. But when I go into the UI, the “Package” option does not show. I’m guessing…

---

## [New blog post: "Dotkernel API: a replacement for legacy Laminas API Tools"](https://discourse.laminas.dev/t/new-blog-post-dotkernel-api-a-replacement-for-legacy-laminas-api-tools/3725)

<div class="topic-metadata">

**Author:** [@froschdesign](https://discourse.laminas.dev/u/froschdesign)\
**Replies:** 1\
**Last updated:** [July 5, 2024, 5:29pm UTC](https://discourse.laminas.dev/t/new-blog-post-dotkernel-api-a-replacement-for-legacy-laminas-api-tools/3725 "2024-07-05T17:29:46Z")

</div>

The Technical Steering Committee for the Laminas Project has decided to mark Laminas API Tools (formerly Apigility) as security-only, indicating that no new features or enhancements will be developed and only security-r…

---

## [Laminas Soap server security](https://discourse.laminas.dev/t/laminas-soap-server-security/3662)

<div class="topic-metadata">

**Author:** [@hypemedia](https://discourse.laminas.dev/u/hypemedia)\
**Replies:** 2\
**Last updated:** [April 9, 2024, 7:26am UTC](https://discourse.laminas.dev/t/laminas-soap-server-security/3662 "2024-04-09T07:26:40Z")

</div>

Hi, We are using laminas Soap for creating a soap service under laravel. I will like to know if there is any way of adding some type of security like http digest or better ws-security? Thanks

---

## [OpenID connect authentication using the authorization code flow](https://discourse.laminas.dev/t/openid-connect-authentication-using-the-authorization-code-flow/3616)

<div class="topic-metadata">

**Author:** [@ezkimo](https://discourse.laminas.dev/u/ezkimo)\
**Replies:** 7\
**Last updated:** [March 15, 2024, 12:49pm UTC](https://discourse.laminas.dev/t/openid-connect-authentication-using-the-authorization-code-flow/3616 "2024-03-15T12:49:19Z")

</div>

Hey folks, I am in the process of implementing the OpenID Connect Flow in my application and have some questions. Taking into account the OpenID Connect principles and the existing implementation with laminas-api-tools/…

---

## [How to write unit tests in Laminas api tools for the resources not for controller](https://discourse.laminas.dev/t/how-to-write-unit-tests-in-laminas-api-tools-for-the-resources-not-for-controller/3576)

<div class="topic-metadata">

**Author:** [@karthikeyan-manivasa](https://discourse.laminas.dev/u/karthikeyan-manivasa)\
**Replies:** 8\
**Last updated:** [January 10, 2024, 7:25pm UTC](https://discourse.laminas.dev/t/how-to-write-unit-tests-in-laminas-api-tools-for-the-resources-not-for-controller/3576 "2024-01-10T19:25:34Z")

</div>

How to write tests for resources that extend this class Laminas\\ApiTools\\Rest\\AbstractResourceListener, I don’t think the official documentation has anything related to this AbstractHttpControllerTestCase class can be …

---

## [Composer autoloading inside apigility](https://discourse.laminas.dev/t/composer-autoloading-inside-apigility/1107)

<div class="topic-metadata">

**Author:** [@testuser](https://discourse.laminas.dev/u/testuser)\
**Replies:** 7\
**Last updated:** [January 4, 2024, 8:45am UTC](https://discourse.laminas.dev/t/composer-autoloading-inside-apigility/1107 "2024-01-04T08:45:31Z")

</div>

When we created “New API” (for example, “Status”) via admin panel of apigility it is created new module inside “module” directory of our project. There is “public function getAutoloaderConfig()…” inside new module “Statu…

---

## [HAL Entity with hydrated collection are missing paging details](https://discourse.laminas.dev/t/hal-entity-with-hydrated-collection-are-missing-paging-details/3470)

<div class="topic-metadata">

**Author:** [@jpoitras](https://discourse.laminas.dev/u/jpoitras)\
**Replies:** 2\
**Last updated:** [September 26, 2023, 12:28pm UTC](https://discourse.laminas.dev/t/hal-entity-with-hydrated-collection-are-missing-paging-details/3470 "2023-09-26T12:28:14Z")

</div>

Good day, I’am wondering if it’s possible or supported to provide paging details of entity sub collection or should I change approach. As return example of my PlaceEntity and PlaceMetaCollection (Laminas\\Paginator\\Pagi…

---

## [How do you debug RPC service failing to produce HAL JSON output?](https://discourse.laminas.dev/t/how-do-you-debug-rpc-service-failing-to-produce-hal-json-output/3464)

<div class="topic-metadata">

**Author:** [@jAsgeir](https://discourse.laminas.dev/u/jAsgeir)\
**Replies:** 8\
**Last updated:** [September 20, 2023, 1:35pm UTC](https://discourse.laminas.dev/t/how-do-you-debug-rpc-service-failing-to-produce-hal-json-output/3464 "2023-09-20T13:35:03Z")

</div>

I’m trying to set up an RPC service , but I simply can’t get the metadata\_map to work. I have set up the metadata\_map to the best of my abilities in the api-tools-hal section of module.config.php, but the output is limi…

---

## [Migrate Apigility to laminas api tools](https://discourse.laminas.dev/t/migrate-apigility-to-laminas-api-tools/3425)

<div class="topic-metadata">

**Author:** [@ramasaml](https://discourse.laminas.dev/u/ramasaml)\
**Replies:** 0\
**Last updated:** [August 2, 2023, 5:07pm UTC](https://discourse.laminas.dev/t/migrate-apigility-to-laminas-api-tools/3425 "2023-08-02T17:07:21Z")

</div>

I already have apigility code. But now that the laminas-api-tools version has been updated, how do I move apigility to the laminas-api tool? I’m a beginner; please share your knowledge and any specific migration advice. …

---

## [DbNoRecordExists on PATCH/PUT request](https://discourse.laminas.dev/t/dbnorecordexists-on-patch-put-request/3416)

<div class="topic-metadata">

**Author:** [@juliangorge](https://discourse.laminas.dev/u/juliangorge)\
**Replies:** 4\
**Last updated:** [July 28, 2023, 4:04pm UTC](https://discourse.laminas.dev/t/dbnorecordexists-on-patch-put-request/3416 "2023-07-28T16:04:00Z")

</div>

Hello! I’m using Api-tools to create my API Rest with DBConnected. I like to use it because it adds filter and validation based on my table. But I have problem when I’m using PATCH/PUT to update my record on db when the…

---

## [DbNoRecordExist Validator](https://discourse.laminas.dev/t/dbnorecordexist-validator/2373)

<div class="topic-metadata">

**Author:** [@faizy](https://discourse.laminas.dev/u/faizy)\
**Replies:** 2\
**Last updated:** [July 28, 2023, 3:57pm UTC](https://discourse.laminas.dev/t/dbnorecordexist-validator/2373 "2023-07-28T15:57:03Z")

</div>

How to use exclude in DbNoRecordExist Validator ? I want to give like this; exclude =\> \[field =\> “id” , value=\> ‘value of id’\]. How to get value of ‘id’ without giving constant value ?

---

## [Collection\_query\_whitelist does not filter](https://discourse.laminas.dev/t/collection-query-whitelist-does-not-filter/3396)

<div class="topic-metadata">

**Author:** [@juliangorge](https://discourse.laminas.dev/u/juliangorge)\
**Replies:** 5\
**Last updated:** [July 26, 2023, 9:13pm UTC](https://discourse.laminas.dev/t/collection-query-whitelist-does-not-filter/3396 "2023-07-26T21:13:36Z")

</div>

Hi! I am trying to filter by URL params without effects and I could not find a reason of why. I use “main\_affiliate\_dni” as param and I would like to filter by this column with same name. If I override fetchAll fun…

---

## [PHP 8.2 tool support for Laminas API](https://discourse.laminas.dev/t/php-8-2-tool-support-for-laminas-api/3412)

<div class="topic-metadata">

**Author:** [@ramasaml](https://discourse.laminas.dev/u/ramasaml)\
**Replies:** 1\
**Last updated:** [July 24, 2023, 3:52pm UTC](https://discourse.laminas.dev/t/php-8-2-tool-support-for-laminas-api/3412 "2023-07-24T15:52:33Z")

</div>

Using the Laminas API tool, we are developing new APIs. Both composer and apigility have been set up. We must verify that the new build api tool supports PHP 8.2.

---

## [API Tools Swagger Documentation Missing Authorisation](https://discourse.laminas.dev/t/api-tools-swagger-documentation-missing-authorisation/3234)

<div class="topic-metadata">

**Author:** [@vigcraig](https://discourse.laminas.dev/u/vigcraig)\
**Replies:** 2\
**Last updated:** [March 9, 2023, 2:35pm UTC](https://discourse.laminas.dev/t/api-tools-swagger-documentation-missing-authorisation/3234 "2023-03-09T14:35:58Z")

</div>

Hello, I see in the documentation Laminas API Tools that there is an ‘Authorization’ field in the header of the image included in this page. I accept that the image is of Apigility, but should I expect similar from…

---

## [Using swagger documentation Tool on a private domain](https://discourse.laminas.dev/t/using-swagger-documentation-tool-on-a-private-domain/3232)

<div class="topic-metadata">

**Author:** [@vigcraig](https://discourse.laminas.dev/u/vigcraig)\
**Replies:** 5\
**Last updated:** [March 9, 2023, 10:00am UTC](https://discourse.laminas.dev/t/using-swagger-documentation-tool-on-a-private-domain/3232 "2023-03-09T10:00:46Z")

</div>

Hello, I am using the swagger documentation tool, but when I navigate to the page, my api is flagged as invalid. Here is an example of the call that the api-tools-documentation-swagger makes, and responses with an http…

---

## [Laminas Api Tools - Swagger](https://discourse.laminas.dev/t/laminas-api-tools-swagger/3183)

<div class="topic-metadata">

**Author:** [@PJNL](https://discourse.laminas.dev/u/PJNL)\
**Replies:** 2\
**Last updated:** [March 8, 2023, 10:56pm UTC](https://discourse.laminas.dev/t/laminas-api-tools-swagger/3183 "2023-03-08T22:56:26Z")

</div>

Hi, There is a long existing bug in the Api Tools Swagger module which renders it kinda useless in my opinion. Is there any fix to be expected for this or is it better to abandon using this at this point and create the…

---

## [Api tool not working with existing MVC application](https://discourse.laminas.dev/t/api-tool-not-working-with-existing-mvc-application/3176)

<div class="topic-metadata">

**Author:** [@ALTAMASH80](https://discourse.laminas.dev/u/ALTAMASH80)\
**Replies:** 3\
**Last updated:** [February 2, 2023, 6:48pm UTC](https://discourse.laminas.dev/t/api-tool-not-working-with-existing-mvc-application/3176 "2023-02-02T18:48:21Z")

</div>

Hi, I’m not able to see laminas API tools within an existing application configured with apache2 as a web server. The problem I’m facing is the initialization of AssetManager and Laminas\\DevelopmentMode. I’ve removed Lam…

---

## [OAuth2Adapter uses the token's 'user\_id' as AuthenticatedIdentity's name property](https://discourse.laminas.dev/t/oauth2adapter-uses-the-tokens-user-id-as-authenticatedidentitys-name-property/2915)

<div class="topic-metadata">

**Author:** [@Illia\_Hapak](https://discourse.laminas.dev/u/Illia_Hapak)\
**Replies:** 0\
**Last updated:** [June 8, 2022, 4:23pm UTC](https://discourse.laminas.dev/t/oauth2adapter-uses-the-tokens-user-id-as-authenticatedidentitys-name-property/2915 "2022-06-08T16:23:14Z")

</div>

I’m not sure if the problem described below is a bug or not, so would like to hear some thoughts before creating an issue on github repository page. In my app I use following dependencies: laminas-api-tools/api-tools-m…

---

## [Set default column value using ApiTools](https://discourse.laminas.dev/t/set-default-column-value-using-apitools/2876)

<div class="topic-metadata">

**Author:** [@juliangorge](https://discourse.laminas.dev/u/juliangorge)\
**Replies:** 8\
**Last updated:** [May 17, 2022, 8:01pm UTC](https://discourse.laminas.dev/t/set-default-column-value-using-apitools/2876 "2022-05-17T20:01:14Z")

</div>

Hi! I am trying to send a POST Request to my service with a “date” field whitch is no nullable and it has column default value “CURRENT\_TIMESTAMP”. But I can not get success. It returns this: “(23000 - 1048 - Column ‘d…

---

## [Nested resources in URI using Laminas API tools](https://discourse.laminas.dev/t/nested-resources-in-uri-using-laminas-api-tools/2830)

<div class="topic-metadata">

**Author:** [@vlx](https://discourse.laminas.dev/u/vlx)\
**Replies:** 3\
**Last updated:** [March 31, 2022, 8:00pm UTC](https://discourse.laminas.dev/t/nested-resources-in-uri-using-laminas-api-tools/2830 "2022-03-31T20:00:57Z")

</div>

Hi, please I would need help with following. I need to create URI in form /seller/\[:sellerId\]/tickets\[/:ticketId\] responding to GET, POST both on individual resource as well as collection. The resource that the Contro…

---

## [Which packge of zfr/zfr-cors should go with Laminas API Tools](https://discourse.laminas.dev/t/which-packge-of-zfr-zfr-cors-should-go-with-laminas-api-tools/2795)

<div class="topic-metadata">

**Author:** [@sanjivsharmalv](https://discourse.laminas.dev/u/sanjivsharmalv)\
**Replies:** 1\
**Last updated:** [March 3, 2022, 5:58pm UTC](https://discourse.laminas.dev/t/which-packge-of-zfr-zfr-cors-should-go-with-laminas-api-tools/2795 "2022-03-03T17:58:59Z")

</div>

In order to solve the CORS problem I tried installing the ZFR-CORS 2.0.0 package. composer require zfr/zfr-cors:2.0.0 I am facing the error, as follows: Your requirements could not be resolved to an installable set of…

---

## [Facing error while creating OAuth Adaptor for PDO](https://discourse.laminas.dev/t/facing-error-while-creating-oauth-adaptor-for-pdo/2770)

<div class="topic-metadata">

**Author:** [@sanjivsharmalv](https://discourse.laminas.dev/u/sanjivsharmalv)\
**Replies:** 1\
**Last updated:** [February 28, 2022, 9:16am UTC](https://discourse.laminas.dev/t/facing-error-while-creating-oauth-adaptor-for-pdo/2770 "2022-02-28T09:16:40Z")

</div>

Facing the error : “Invalid DSN”, please advise what is wrong with DSN:

---

## [How do I access query parameter values in Laminas API Tools](https://discourse.laminas.dev/t/how-do-i-access-query-parameter-values-in-laminas-api-tools/2790)

<div class="topic-metadata">

**Author:** [@sanjivsharmalv](https://discourse.laminas.dev/u/sanjivsharmalv)\
**Replies:** 2\
**Last updated:** [February 28, 2022, 10:30am UTC](https://discourse.laminas.dev/t/how-do-i-access-query-parameter-values-in-laminas-api-tools/2790 "2022-02-28T10:30:15Z")

</div>

I want to access multiple query parameters in the URL, please refer to the screenshot. In the corresponding resource file it gets mapped on the fetch($id) method. I can see only one parameter as expected, how do I acces…

---

## [Using Mezzio with Laminas API Tools](https://discourse.laminas.dev/t/using-mezzio-with-laminas-api-tools/2777)

<div class="topic-metadata">

**Author:** [@sanjivsharmalv](https://discourse.laminas.dev/u/sanjivsharmalv)\
**Replies:** 8\
**Last updated:** [February 22, 2022, 10:21pm UTC](https://discourse.laminas.dev/t/using-mezzio-with-laminas-api-tools/2777 "2022-02-22T22:21:34Z")

</div>

I have written different Services such as Orders, Invoices services in Laminas API Tools. I am using OAuth2 framework to connect one service with another. Somewhere between Orders Service and Invoice Service I need to do…

---

## [How do I integrate laminas-mvc-middleware with API Tools](https://discourse.laminas.dev/t/how-do-i-integrate-laminas-mvc-middleware-with-api-tools/2768)

<div class="topic-metadata">

**Author:** [@sanjivsharmalv](https://discourse.laminas.dev/u/sanjivsharmalv)\
**Replies:** 2\
**Last updated:** [February 11, 2022, 1:52pm UTC](https://discourse.laminas.dev/t/how-do-i-integrate-laminas-mvc-middleware-with-api-tools/2768 "2022-02-11T13:52:28Z")

</div>

My problem statement is - I want to check if the Request has JWT token, if it has the token and the token is valid I want to pass the Request to the corresponding REST API. My plan is to use Laminas MVC Middleware for th…

---

## [Right (and easy) setup for REST API without API Tools Admin?](https://discourse.laminas.dev/t/right-and-easy-setup-for-rest-api-without-api-tools-admin/2738)

<div class="topic-metadata">

**Author:** [@funder7](https://discourse.laminas.dev/u/funder7)\
**Replies:** 6\
**Last updated:** [February 2, 2022, 1:41pm UTC](https://discourse.laminas.dev/t/right-and-easy-setup-for-rest-api-without-api-tools-admin/2738 "2022-02-02T13:41:41Z")

</div>

Hi Community, I’m new to Laminas, and after reading the documentation many times, I’ve not reached a solution yet. To give you some context information, the project I’m working on it’s an existing Laminas application, …

---

## [How to recover from Exception in REST Resource Factory](https://discourse.laminas.dev/t/how-to-recover-from-exception-in-rest-resource-factory/2710)

<div class="topic-metadata">

**Author:** [@dickdono](https://discourse.laminas.dev/u/dickdono)\
**Replies:** 1\
**Last updated:** [January 13, 2022, 10:43am UTC](https://discourse.laminas.dev/t/how-to-recover-from-exception-in-rest-resource-factory/2710 "2022-01-13T10:43:49Z")

</div>

I have a REST web service in API Tools. I’m trying to have my Resource factory implement the Laminas\\ServiceManager\\Factory\\FactoryInterface. I get a message from my IDE (phpStorm) that says that the ContainerInterface…

---

## [Purpose of having multiple tables in REST DB Connected services](https://discourse.laminas.dev/t/purpose-of-having-multiple-tables-in-rest-db-connected-services/2709)

<div class="topic-metadata">

**Author:** [@sanjivsharmalv](https://discourse.laminas.dev/u/sanjivsharmalv)\
**Replies:** 0\
**Last updated:** [January 12, 2022, 3:52pm UTC](https://discourse.laminas.dev/t/purpose-of-having-multiple-tables-in-rest-db-connected-services/2709 "2022-01-12T15:52:30Z")

</div>

When I select db adapter I can see many tables from the databases. What is the purpose of having multiple tables in this case? Please give example so that I can use the feature appropriately.

---

## [Multiple REST services for an API](https://discourse.laminas.dev/t/multiple-rest-services-for-an-api/2669)

<div class="topic-metadata">

**Author:** [@sanjivsharmalv](https://discourse.laminas.dev/u/sanjivsharmalv)\
**Replies:** 2\
**Last updated:** [December 29, 2021, 5:34am UTC](https://discourse.laminas.dev/t/multiple-rest-services-for-an-api/2669 "2021-12-29T05:34:49Z")

</div>

I want to have multiple REST services for an API in Laminas API Tools on the Admin screen. Is there a way to do it? If yes, how this can be done?

[Next page](https://discourse.laminas.dev/c/questions/api-tools/8.md?page=1)
