スキル一覧に戻る
paralect

hive-endpoint

by paralect

0🍴 0📅 2026年1月18日
GitHubで見るManusで実行

SKILL.md


name: hive-endpoint description: How to create API endpoints in Hive framework globs:

  • src/resources/**/endpoints/*.js alwaysApply: false

Creating Endpoints

Location: /src/resources/{name}/endpoints/{action}.js

Template (4 Required Exports)

import { z } from 'zod';
import db from 'db';

const myService = db.services.myResource;

export const handler = async (ctx) => {
  const { param } = ctx.validatedData;
  // Logic here
  return { result: 'data' };
};

export const middlewares = [];

export const endpoint = {
  url: '/',
  method: 'get',
};

export const requestSchema = z.object({
  param: z.coerce.string().nullable().optional(),
});

Handler Context (ctx)

ctx.validatedData       // Validated input (body + query + params)
ctx.state.user          // Authenticated user
ctx.params              // URL params
ctx.throw(404, 'msg')   // Throw error
ctx.assert(cond, 400)   // Assert or throw

Common Patterns

List:

export const handler = async (ctx) => {
  const { page, perPage } = ctx.validatedData;
  const { results, count } = await service.find(
    { 'user._id': ctx.state.user._id },
    { page, perPage, sort: '-createdOn' }
  );
  return { results, count };
};
export const endpoint = { url: '/', method: 'get' };

Create:

export const handler = async (ctx) => {
  const doc = await service.create({
    ...ctx.validatedData,
    user: ctx.state.user,
  });
  return doc;
};
export const endpoint = { url: '/', method: 'post' };

Update:

export const handler = async (ctx) => {
  const { id, title } = ctx.validatedData;
  return await service.updateOne({ _id: id }, (doc) => ({ ...doc, title }));
};
export const endpoint = { url: '/:id', method: 'put' };

Middlewares

// By name
export const middlewares = ['allowNoAuth'];

// With args
export const middlewares = [{ name: 'shouldExist', args: ['projects'] }];

// Direct function
import canEditProject from 'middlewares/canEditProject';
export const middlewares = [canEditProject((ctx) => ctx.params.projectId)];

Public Endpoint (No Auth)

export const middlewares = ['allowNoAuth'];

スコア

総合スコア

50/100

リポジトリの品質指標に基づく評価

SKILL.md

SKILL.mdファイルが含まれている

+20
LICENSE

ライセンスが設定されている

0/10
説明文

100文字以上の説明がある

0/10
人気

GitHub Stars 100以上

0/15
最近の活動

3ヶ月以内に更新がある

0/10
フォーク

10回以上フォークされている

0/5
Issue管理

オープンIssueが50未満

+5
言語

プログラミング言語が設定されている

+5
タグ

1つ以上のタグが設定されている

0/5

レビュー

💬

レビュー機能は近日公開予定です