UNPKG

@agravity/private

Version:

The Agravity GlobalDAM API which allowes authenticated user to access the Agravity GlobalDAM Backend

231 lines (179 loc) 7.36 kB
## @agravity/private@9.3.0 <h1>Agravity API Reference</h1>This is the full API description of Agravity GmbH.<br/><h2>Resources</h2><ul> <li>Collection type management</li> <li>Collections management</li> <li>Assets management</li> <li>Assets operations</li> <li>Assets publishing</li> <li>Assets versioning</li> <li>Sharing collection</li> <li>Secure upload to collection</li> <li>Download ZIP</li> <li>Search</li> <li>General management</li> <li>Authentication management</li> <li>Blob management</li> <li>Queue management</li> <li>Structure management</li> <li>Bulk get all data from collection / collection type</li></ul><h2> Operations</h2>Agravity API performs the following operations:<ul> <li>Create / update / list / delete collection types</li> <li>Create / update / list / delete collections</li> <li>Create / update / list / delete assets</li> <li>Operations on assets like: move to collection, renew asset(through queue pipe), rotate, resize, etc.</li> <li>Publish / de-publish an asset or specific variants of an asset</li> <li>Create / delete version of asset</li> <li>Bulk download of Assets</li> <li>Search for assets or collections</li> <li>Authenticated access like e.g. getting access to blobs directly (for upload on folder or generate SAS token)</li> <li>List / delete blobs</li> <li>Create structures based on blob storage input</li></ul><br/>Copyright © Agravity GmbH 2025. All Rights Reserved The version of the OpenAPI document: 9.3.0 ### Building To install the required dependencies and to build the typescript sources run: ``` npm install npm run build ``` ### publishing First build the package then run ```npm publish dist``` (don't forget to specify the `dist` folder!) ### consuming Navigate to the folder of your consuming project and run one of next commands. _published:_ ``` npm install @agravity/private@9.3.0 --save ``` _without publishing (not recommended):_ ``` npm install PATH_TO_GENERATED_PACKAGE/dist.tgz --save ``` _It's important to take the tgz file, otherwise you'll get trouble with links on windows_ _using `npm link`:_ In PATH_TO_GENERATED_PACKAGE/dist: ``` npm link ``` In your project: ``` npm link @agravity/private ``` __Note for Windows users:__ The Angular CLI has troubles to use linked npm packages. Please refer to this issue https://github.com/angular/angular-cli/issues/8284 for a solution / workaround. Published packages are not effected by this issue. #### General usage In your Angular project: ``` // without configuring providers import { AgravityApiModule } from '@agravity/private'; import { HttpClientModule } from '@angular/common/http'; @NgModule({ imports: [ AgravityApiModule, // make sure to import the HttpClientModule in the AppModule only, // see https://github.com/angular/angular/issues/20575 HttpClientModule ], declarations: [ AppComponent ], providers: [], bootstrap: [ AppComponent ] }) export class AppModule {} ``` ``` // configuring providers import { AgravityApiModule, AgravityConfiguration, AgravityConfigurationParameters } from '@agravity/private'; export function apiConfigFactory (): AgravityConfiguration { const params: AgravityConfigurationParameters = { // set configuration parameters here. } return new AgravityConfiguration(params); } @NgModule({ imports: [ AgravityApiModule.forRoot(apiConfigFactory) ], declarations: [ AppComponent ], providers: [], bootstrap: [ AppComponent ] }) export class AppModule {} ``` ``` // configuring providers with an authentication service that manages your access tokens import { AgravityApiModule, AgravityConfiguration } from '@agravity/private'; @NgModule({ imports: [ AgravityApiModule ], declarations: [ AppComponent ], providers: [ { provide: AgravityConfiguration, useFactory: (authService: AuthService) => new AgravityConfiguration( { basePath: environment.apiUrl, accessToken: authService.getAccessToken.bind(authService) } ), deps: [AuthService], multi: false } ], bootstrap: [ AppComponent ] }) export class AppModule {} ``` ``` import { DefaultApi } from '@agravity/private'; export class AppComponent { constructor(private apiGateway: DefaultApi) { } } ``` Note: The AgravityApiModule is restricted to being instantiated once app wide. This is to ensure that all services are treated as singletons. #### Using multiple OpenAPI files / APIs / AgravityApiModules In order to use multiple `AgravityApiModules` generated from different OpenAPI files, you can create an alias name when importing the modules in order to avoid naming conflicts: ``` import { AgravityApiModule } from 'my-api-path'; import { AgravityApiModule as OtherApiModule } from 'my-other-api-path'; import { HttpClientModule } from '@angular/common/http'; @NgModule({ imports: [ AgravityApiModule, OtherApiModule, // make sure to import the HttpClientModule in the AppModule only, // see https://github.com/angular/angular/issues/20575 HttpClientModule ] }) export class AppModule { } ``` ### Set service base path If different than the generated base path, during app bootstrap, you can provide the base path to your service. ``` import { BASE_PATH } from '@agravity/private'; bootstrap(AppComponent, [ { provide: BASE_PATH, useValue: 'https://your-web-service.com' }, ]); ``` or ``` import { BASE_PATH } from '@agravity/private'; @NgModule({ imports: [], declarations: [ AppComponent ], providers: [ provide: BASE_PATH, useValue: 'https://your-web-service.com' ], bootstrap: [ AppComponent ] }) export class AppModule {} ``` #### Using @angular/cli First extend your `src/environments/*.ts` files by adding the corresponding base path: ``` export const environment = { production: false, API_BASE_PATH: 'http://127.0.0.1:8080' }; ``` In the src/app/app.module.ts: ``` import { BASE_PATH } from '@agravity/private'; import { environment } from '../environments/environment'; @NgModule({ declarations: [ AppComponent ], imports: [ ], providers: [{ provide: BASE_PATH, useValue: environment.API_BASE_PATH }], bootstrap: [ AppComponent ] }) export class AppModule { } ``` ### Customizing path parameter encoding Without further customization, only [path-parameters][parameter-locations-url] of [style][style-values-url] 'simple' and Dates for format 'date-time' are encoded correctly. Other styles (e.g. "matrix") are not that easy to encode and thus are best delegated to other libraries (e.g.: [@honoluluhenk/http-param-expander]). To implement your own parameter encoding (or call another library), pass an arrow-function or method-reference to the `encodeParam` property of the Configuration-object (see [General Usage](#general-usage) above). Example value for use in your Configuration-Provider: ```typescript new Configuration({ encodeParam: (param: Param) => myFancyParamEncoder(param), }) ``` [parameter-locations-url]: https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#parameter-locations [style-values-url]: https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#style-values [@honoluluhenk/http-param-expander]: https://www.npmjs.com/package/@honoluluhenk/http-param-expander