Seed web-services (API v2) knowledge domain (#45)

* Seed web-services (API v2) knowledge domain

Add eight web-services API page knowledge articles (each with .good.al/.bad.al samples), a new al-web-services-review leaf skill, and wire it into al-code-review and the README.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Trim web-services domain to 6 non-duplicative articles

Drop API entity-naming/camelCase and DelayedInsert articles (owned by the style domain). Reframe the committed-data and API-versioning articles to stay strictly within the endpoint design/behavior lane, and update the leaf skill's worklist tokens and Output example accordingly.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Jesper Schulz-Wedde <jesper.schulzwedde@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
Jesper Schulz-Wedde 2026-06-25 12:37:40 +02:00 committed by GitHub
parent 6140a52b03
commit 13f47f65a8
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
21 changed files with 774 additions and 2 deletions

View file

@ -0,0 +1,60 @@
// Side effect hidden behind a writable flag: PATCHing "posted" to true silently
// triggers posting through OnValidate. The operation is indistinguishable from
// an ordinary data edit and is not discoverable as an action. Expose a
// [ServiceEnabled] bound action instead.
page 50351 "WS Bound Action Bad"
{
PageType = API;
APIPublisher = 'contoso';
APIGroup = 'sales';
APIVersion = 'v1.0';
EntityName = 'salesOrder';
EntitySetName = 'salesOrders';
ODataKeyFields = SystemId;
SourceTable = "Sales Header";
DelayedInsert = true;
layout
{
area(content)
{
repeater(records)
{
field(id; Rec.SystemId)
{
Caption = 'id';
Editable = false;
}
field(number; Rec."No.")
{
Caption = 'number';
}
field(posted; IsPosted)
{
Caption = 'posted';
trigger OnValidate()
var
PostHelper: Codeunit "WS Bound Action Bad Helper";
begin
if IsPosted then
PostHelper.PostOrder(Rec);
end;
}
}
}
}
var
IsPosted: Boolean;
}
codeunit 50353 "WS Bound Action Bad Helper"
{
procedure PostOrder(var SalesHeader: Record "Sales Header")
var
SalesPost: Codeunit "Sales-Post";
begin
SalesPost.Run(SalesHeader);
end;
}