@iliad.dev/strapi-adapter v0.2.17
@iliad.dev/strapi-adapter
A fully-typed client library for interfacing with Strapi v4, offering seamless integration through three operation modes: REST API, CRUD operations (recommended), and Semantic operations. When paired with the @iliad.dev/plugin-strapi-adapter
package, it automatically synchronizes types from your Strapi server, providing intelligent autocompletion and type safety that saves development time.
Table of Contents
Features
- Fully Typed Integration: Automatically download and synchronize types from your Strapi server when used with
@iliad.dev/plugin-strapi-adapter
. - Intelligent Autocompletion: Get smart suggestions for API endpoints, content types, filters, query parameters, populate keys, and more.
- Multiple Operation Modes:
- REST API: Direct interaction with Strapi's REST endpoints.
- CRUD Operations: Simplify Create, Read, Update, Delete operations with type safety (recommended).
- Semantic Operations: Higher-level operations for complex data interactions.
- Time Saver: Reduces development time by providing type safety and autocompletion.
- Extensible: Authentication features and more coming soon.
Installation
Install the @iliad.dev/strapi-adapter
package via npm:
npm install @iliad.dev/strapi-adapter
Optional (Recommended for Type Synchronization):
npm install @iliad.dev/plugin-strapi-adapter
Getting Started
Prerequisites
- Node.js v12 or higher
- Strapi v4
- TypeScript (for full typing benefits)
Setup
Install the Adapter:
npm install @iliad.dev/strapi-adapter
(Optional) Install the Strapi Plugin:
npm install @iliad.dev/plugin-strapi-adapter
Configure the Strapi Plugin (if installed):
In your Strapi project, enable the plugin in
config/plugins.js
:module.exports = { // ...other plugins "strapi-adapter": { enabled: true, config: { // Plugin configuration }, }, };
Initialize the Adapter:
import { StrapiAdapter } from "@iliad.dev/strapi-adapter"; import { Hermes } from "@iliad.dev/hermes"; const hermes = new Hermes({ baseURL: "https://your-strapi-api.com" }); const strapi = new StrapiAdapter({ client: "fetch", // or 'axios' if preferred hermes, });
Usage
REST API
Interact directly with Strapi's REST endpoints using the adapter's REST methods.
// GET request
const response = await strapi.get("/articles");
// POST request
const newArticle = await strapi.post("/articles", {
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
data: { title: "New Article", content: "Content goes here." },
}),
});
CRUD Operations
Simplify your interactions with Strapi using the built-in CRUD methods.
Find
Retrieve a list of entries from a collection.
const articles = await strapi.find("articles", {
filters: { published: true },
populate: "*",
});
Find One
Retrieve a single entry by its ID.
const article = await strapi.findOne("articles", articleId, {
populate: "*",
});
Create
Create a new entry in a collection.
const newArticle = await strapi.create("articles", {
title: "New Article",
content: "Content of the new article",
});
Update
Update an existing entry by its ID.
const updatedArticle = await strapi.update("articles", articleId, {
title: "Updated Title",
});
Delete
Delete an entry by its ID.
await strapi.delete("articles", articleId);
Semantic Operations
Perform higher-level operations for more complex data interactions.
Get Full Collection
Retrieve all entries from a collection, handling pagination automatically.
const fullCollection = await strapi.getFullCollection("articles", {
populate: "*",
});
Get Entry by Slug
Retrieve a single entry using a slug field.
const article = await strapi.getEntryBySlug("articles", "my-article-slug", {
populate: "*",
});
Type Synchronization
Enhance your development experience with automatic type synchronization.
Setup
Install the Plugin in Your Strapi Project:
npm install @iliad.dev/plugin-strapi-adapter
Enable the Plugin:
In
config/plugins.js
of your Strapi project:module.exports = { // ...other plugins "strapi-adapter": { enabled: true, config: { // Plugin configuration }, }, };
Generate Types:
Run the type generation script:
npm run strapi generate-types
Use the Generated Types:
import { Article } from "@types/Article"; const articles: Article[] = await strapi.find("articles");
Now, you'll have full type safety and intelligent autocompletion for your Strapi content types.
Contributing
Contributions are welcome! Please read the contributing guidelines before making a pull request.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Links
- NPM Package: @iliad.dev/strapi-adapter
- GitHub Repository: iliad-standard-issue
- Iliad.dev: Visit our website
Part of the @iliad.dev/standard-issue project, a collection of tools used internally by Iliad.dev to speed up development.
Note: Authentication features and additional enhancements are planned for future releases. Stay tuned!
4 months ago
6 months ago
6 months ago
6 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago