dfinity / dfinity/icskills

Skill gap: serving inbound HTTP endpoints (POST) from a canister

Open
#337 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
35
Forks
13
Avg merge
19h 10m
Merged PRs (30d)
22

Description

Gap

We identified a gap in the current skill coverage: no skill documents how a canister
serves an inbound HTTP endpoint
(e.g. a plain POST a client can curl). This is a
common need — webhooks, ingest/receiver APIs, bot endpoints, health checks — and today
an agent has to work it out from the HTTP gateway protocol.

Why the existing skills don't cover it

  • https-outcalls — outbound HTTP only.
  • certified-variables — Rust ic-http-certification, GET/response-certification oriented.
  • static-site — shows the http_request candid shape only for asset serving.
  • custom-domains — merely mentions "any canister implementing http_request".

The pattern that works

For a mutating endpoint: http_request (query) returns upgrade = opt true; the gateway
re-issues the call as http_request_update (update), which may mutate state. Update
responses do not require query certification. Read side (GET) needs the certified-response
path instead.

For discussion — where should this live?

  • A new skill (e.g. canister-http-endpoints, inbound — parallel to https-outcalls)?
  • Or extend an existing skill?
  • Motoko-only, or Motoko + Rust in one place?

Filing for discussion on placement before anyone writes content.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Review the existing https-outcalls, certified-variables, static-site, and custom-domains skills alongside the HTTP gateway protocol. Determine whether inbound POST endpoints need a new skill or an extension, and whether the content should cover Motoko, Rust, or both; done means the placement and scope are agreed before content is written.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
api, documentation
Issue type
Documentation
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.