Поток данных для ответа: несколько методов выражения конвейерных потоков

Чтобы выразить поток в ответ, вам обычно приходится работать в рамках определенной среды программирования или языка. Ниже я приведу примеры с использованием разных технологий:

  1. Node.js (платформа Express):

    const fs = require('fs');
    const express = require('express');
    const app = express();
    app.get('/stream', (req, res) => {
     const stream = fs.createReadStream('file.txt');
     stream.pipe(res);
    });
    app.listen(3000, () => {
     console.log('Server listening on port 3000');
    });
  2. Python (фреймворк Flask):

    from flask import Flask, Response
    import requests
    app = Flask(__name__)
    @app.route('/stream')
    def stream():
     response = requests.get('https://example.com/large_file.txt', stream=True)
     return Response(response.iter_content(chunk_size=4096), mimetype='text/plain')
    if __name__ == '__main__':
     app.run()
  3. ASP.NET Core (C#):

    using Microsoft.AspNetCore.Mvc;
    using System.IO;
    [Route("api/[controller]")]
    [ApiController]
    public class StreamController : ControllerBase
    {
       [HttpGet]
       public IActionResult Get()
       {
           var stream = new FileStream("file.txt", FileMode.Open);
           return new FileStreamResult(stream, "text/plain");
       }
    }

В этих примерах показано, как создать конечную точку API, которая передает файл или данные в ответ с использованием различных платформ и языков.