본문 바로가기
컴퓨터|인터넷/라즈베리파이

Node-red: http in

by 즐거운 지니 2024. 10. 3.
반응형

Node-RED에서 'HTTP In' 노드네트워크 카테고리에 속하는 노드 중 하나로, HTTP 요청을 받아들이는 역할을 합니다. 이 노드는 웹 서버 엔드포인트를 생성하며, HTTP 요청을 수신하고 이를 Node-RED 플로우 내에서 처리할 수 있도록 해줍니다.

'HTTP In' 노드의 기능

  • HTTP 엔드포인트 생성: HTTP In 노드는 Node-RED에서 특정 URL을 경로로 하는 HTTP 엔드포인트를 만듭니다. 이 엔드포인트는 GET, POST, PUT, DELETE 등의 HTTP 메소드를 처리할 수 있습니다.
  • 요청 데이터 수신: 클라이언트(브라우저, 애플리케이션 등)가 HTTP 요청을 보내면 이 요청을 처리할 수 있습니다. 이 요청에는 URL 경로, 쿼리 파라미터, 헤더, 본문 데이터 등이 포함될 수 있습니다.
  • 플로우 시작점: HTTP In 노드는 Node-RED 플로우에서 요청이 들어오는 시점을 시작점으로 사용됩니다. 이후의 노드들은 요청 데이터를 처리한 후, HTTP Response 노드를 통해 클라이언트에게 응답을 보냅니다.

'HTTP In' 노드의 주요 설정

  1. Method: 수신할 HTTP 요청의 메소드를 선택합니다. 기본적으로 GET, POST, PUT, DELETE 등의 메소드를 선택할 수 있습니다.
  2. URL Path: 이 노드가 처리할 URL 경로를 지정합니다. 예를 들어, /api/data로 설정하면 http://localhost:1880/api/data로 들어오는 HTTP 요청을 처리할 수 있습니다.
  3. Name: 이 노드의 이름을 설정할 수 있습니다(선택 사항).

HTTP In 노드와 HTTP Response 노드의 연계

HTTP In 노드는 단독으로 클라이언트에 응답을 할 수 없기 때문에, HTTP Response 노드와 함께 사용해야 합니다. 요청을 수신한 후, Node-RED 플로우 내에서 필요한 데이터를 처리하고, 최종적으로 HTTP Response 노드를 통해 클라이언트에 응답을 보냅니다.

사용 예시

다음은 'HTTP In' 노드를 사용한 간단한 플로우 예시입니다. 이 플로우에서는 클라이언트가 /hello 경로로 GET 요청을 보내면, "Hello, World!"라는 응답을 받게 됩니다.

플로우 구성:

  1. HTTP In 노드: /hello 경로로 들어오는 GET 요청을 수신.
  2. Function 노드: 메시지 처리를 통해 응답 데이터를 생성.
  3. HTTP Response 노드: 응답을 클라이언트에게 전송.
[
    {
        "id": "http_in",
        "type": "http in",
        "z": "tab_id",
        "name": "",
        "url": "/hello",
        "method": "get",
        "upload": false,
        "swaggerDoc": "",
        "wires": [["function_node"]]
    },
    {
        "id": "function_node",
        "type": "function",
        "z": "tab_id",
        "name": "Set Response",
        "func": "msg.payload = \"Hello, World!\";\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "wires": [["http_response"]]
    },
    {
        "id": "http_response",
        "type": "http response",
        "z": "tab_id",
        "name": "",
        "statusCode": "",
        "headers": {},
        "x": 500,
        "y": 200,
        "wires": []
    }
]

설명:

  1. HTTP In 노드/hello 경로로 들어오는 GET 요청을 받습니다.
  2. Function 노드는 요청을 처리하고, 응답 데이터(여기서는 "Hello, World!")를 준비합니다.
  3. HTTP Response 노드는 처리된 데이터를 클라이언트에게 HTTP 응답으로 전송합니다.

다양한 활용 예시

  • API 구축: HTTP In 노드를 사용하여 REST API 엔드포인트를 만들고, Node-RED 플로우 내에서 데이터를 가공하여 클라이언트에게 응답할 수 있습니다.
  • 데이터 수집: HTTP In 노드를 통해 POST 요청으로 들어온 데이터를 수집하고, 데이터베이스에 저장하거나 다른 시스템으로 전달할 수 있습니다.
  • 웹훅 처리: 외부 시스템에서 웹훅 요청을 보내면, Node-RED가 이를 받아 처리할 수 있습니다.

요약

  • HTTP In 노드HTTP 요청을 수신하고, Node-RED 플로우에서 이 요청을 처리할 수 있게 하는 시작점 역할을 합니다.
  • 이 노드는 특정 URL 경로HTTP 메소드를 지정할 수 있으며, HTTP Response 노드와 연계하여 클라이언트에 응답을 보냅니다.
  • Node-RED를 통해 간단한 웹 서버REST API를 쉽게 구축할 수 있습니다.

이를 통해 Node-RED는 클라이언트-서버 간의 상호작용을 처리하고, 다양한 HTTP 요청을 쉽게 관리할 수 있는 유연한 도구로 활용됩니다.

반응형

댓글