UNPKG

bc-code-intelligence-mcp

Version:

BC Code Intelligence MCP Server - Complete Specialist Bundle with AI-driven expert consultation, seamless handoffs, and context-preserving workflows

87 lines (67 loc) 5.63 kB
--- title: "AL API Page Development Patterns" domain: "alex-architect" difficulty: "intermediate" bc_versions: "14+" tags: ["api", "pages", "odata", "integration", "architecture"] samples: "samples/api-page-implementation.md" type: "implementation-pattern" category: "api-development" pattern_type: "good" severity: "medium" impact_level: "high" improvement_suggestion: "Use API pages for structured external system integration" implementation_steps: ["design-api-structure", "implement-field-exposure", "optimize-performance"] validation_criteria: ["odata-compliance", "security-integration", "performance-optimization"] technical_areas: ["al-code", "integration"] --- # AL API Page Development Patterns ## Overview API pages in Business Central provide structured OData endpoints for external system integration. Unlike standard pages, API pages focus exclusively on data exchange with minimal UI considerations, requiring careful design for optimal performance and maintainability. **Key Decision**: API pages should expose logical business entities rather than raw table structures, providing stable integration contracts that abstract internal data organization. ## Strategic Framework ### API Page Design Philosophy - **Business Entity Focus**: Expose meaningful business concepts (Customer, Item, SalesOrder) rather than normalized table structures - **Contract Stability**: Maintain consistent field names and structures across BC versions to protect integration investments - **Performance Optimization**: Design for efficient data retrieval and modification patterns expected by consuming applications - **Security Integration**: Leverage BC's built-in authentication and authorization without exposing sensitive internal structures ### Integration Architecture Patterns API pages serve as the primary integration layer between Business Central and external systems. They should provide complete business entity representations while maintaining clear separation between internal data models and external contracts. ## Architecture Focus ### Page Structure Design API pages require specific architectural considerations distinct from interactive pages. The PageType API designation enables OData endpoint generation with automatic JSON serialization and standardized query capabilities. ### Field Exposure Strategy Expose fields that represent complete business entity state while avoiding internal implementation details. Include essential business identifiers, descriptive fields, and workflow status information that external systems need for business logic. ### Relationship Management Design API pages to include related entity references through careful use of lookup fields and calculated fields. This enables consuming applications to navigate business relationships without requiring multiple API calls. ### Version Compatibility Structure API pages to maintain backward compatibility as business requirements evolve. Use consistent naming conventions and avoid breaking changes to established field contracts. ## Best Practices ### Entity Modeling - **Complete Business Context**: Include all fields necessary for external systems to make business decisions - **Logical Grouping**: Group related information to minimize round-trips for common business scenarios - **Status Visibility**: Expose workflow states and business status fields that affect integration logic - **Audit Information**: Include creation dates, modification timestamps, and responsible user information ### Performance Considerations - **Selective Field Loading**: Design pages to load only necessary fields for common query patterns - **Efficient Filtering**: Support standard OData filtering on key business fields like dates, status, and identifiers - **Batch Operation Support**: Enable bulk data operations where business processes require them - **Caching Awareness**: Structure responses to support effective caching strategies in consuming applications ### Security Implementation - **Principle of Least Privilege**: Expose only fields that external systems legitimately need for business operations - **Sensitive Data Protection**: Exclude internal identifiers, system fields, and confidential business information - **Access Control Integration**: Leverage BC's permission system to control API access at field and record levels - **Audit Trail Maintenance**: Ensure API operations create appropriate audit records for compliance requirements ## Anti-Patterns ### Avoid These Approaches - **Direct Table Exposure**: Exposing raw table structures without business context abstraction - **Internal Field Leakage**: Including system fields, internal identifiers, or implementation details in API contracts - **Incomplete Entity Representation**: Requiring multiple API calls to reconstruct basic business entity state - **Breaking Contract Changes**: Modifying existing field names or removing fields without proper versioning strategy ### Common Design Mistakes - **Over-Normalization**: Creating APIs that mirror database structure rather than business entity logic - **Under-Documentation**: Failing to provide clear guidance on field usage and business meaning - **Security Oversights**: Exposing sensitive information or bypassing standard BC security mechanisms - **Performance Blindness**: Designing APIs without considering query patterns and data volume implications *Implementation examples: see samples/api-page-implementation.md* *Related patterns: facade-pattern-external-api.md, api-authentication-patterns.md*