SP → API → Validation

My approach aligns with common practice: generate JSON inside SQL (deterministic, testable) and let a minimal API simply return it. This keeps the logic close to the data, reduces app complexity, and makes validation trivial.

1) Stored procedure pattern (JSON OUT)

/* Stored procedure pattern (JSON OUT) */

CREATE OR ALTER PROC [dbo].[pr_GetDailySummaryJson]
  @dailySummary nvarchar(max) OUTPUT
AS
BEGIN
  SET NOCOUNT ON;
  SELECT @dailySummary = (
    SELECT [date]        = CAST([tpep_pickup_datetime] AS date),
           [trips]       = COUNT(*),
           [revenue]     = ROUND(SUM([total_amount]), 2),
           [avgDistance] = ROUND(AVG([trip_distance]), 2),
           [avgMinutes]  = ROUND(AVG(DATEDIFF(second, [tpep_pickup_datetime], [tpep_dropoff_datetime]))/60.0, 1)
    FROM   [dbo].[yellow_tripdata]
    GROUP BY CAST([tpep_pickup_datetime] AS date)
    ORDER BY [date]
    FOR JSON PATH, ROOT('daily')
  );
END;
GO

Updated: