Kind: Interface
Source: Pams/Web/Pams.WebApp/Client/app/core/services/api/i-api.interface.ts (line 3)
Part of: Pams
IApi<T> defines the contract for services that perform API operations for a resource type. It exposes resource metadata through keyName and resourceName, and returns RxJS Observable values for retrieval, deletion, and saving.
Properties
| Property | Type |
|---|---|
keyName | string |
resourceName | string |
Diagram
mermaidgraph LR IApi["IApi<T>"] IApi --> KeyName["keyName: string"] IApi --> ResourceName["resourceName: string"] IApi --> Get["get(): Observable<T[]>"] IApi --> GetById["getById(): Observable<T>"] IApi --> Delete["delete(): Observable<{}>"] IApi --> Save["save(): Observable<T>"]
Usage
tsimport { IApi } from './i-api.interface';
interface User {
id: string;
name: string;
}
declare const userApi: IApi<User>;
console.log(userApi.resourceName);
console.log(userApi.keyName);
userApi.get().subscribe((users) => {
console.log(users);
});
userApi.getById().subscribe((user) => {
console.log(user);
});
userApi.save().subscribe((savedUser) => {
console.log(savedUser);
});
userApi.delete().subscribe(() => {
console.log('User deleted');
});
AI Coding Instructions
- Keep API service implementations aligned with the
Observablereturn types declared byIApi<T>. - Use
resourceNameto identify the API resource andkeyNameto identify the resource key field. - Do not add method parameters unless the interface contract is updated at the same time.
- Handle subscriptions and errors at the caller or through the application's existing RxJS patterns.
Used by
1 reference from 1 file. Each is a place in this repository where the symbol is actually used — go read one rather than trusting an example.
Imported by (1)
BaseApi—Pams/Web/Pams.WebApp/Client/app/core/services/api/base-api.service.ts:1
Was this page helpful?