WebHook 또는 리버스 API
데이터가 JSON으로 노출되는 코드를 작성하는 작업을 생각해 냈습니다. 쉬운 일을 빨리 할 수 있다고 생각했습니다. 그러나 작업에 트윅이 있었다. 코드는 API로 노출되지 않은 Webhook에 JSON으로 전송하는 것이었습니다. 처음으로 Webhook이라는 단어를 생각해 냈습니다. GOOGLE 선생님과 한 시간 동안 확인했습니다. 저는 여러분 모두와 공유하고 싶은 Webhook의 개념이 정말 마음에 들었습니다.
WebHook 또는 Reverse API는 모든 형식의 데이터가 다른 애플리케이션 POST 메소드 URL로 전송되는 개념입니다. 일반적으로 API에서 API의 새 데이터에 대해 서버를 계속 확인합니다. 그러나 Webhook에서는 서버가 데이터의 변경 사항을 찾을 때 클라이언트 응용 프로그램으로 전송됩니다.
이렇게 하면 클라이언트가 업데이트된 데이터를 확인하기 위해 매번 요청할 필요가 없기 때문에 서버에 대한 많은 트래픽을 방지할 수 있습니다. 그러나 API에는 고유한 용도가 있습니다.
이제 코드 관점을 통해 이해해 봅시다.
먼저 JSON 파일을 허용하는 Post Method를 FLask Server에서 만들어 보겠습니다. 이 메서드는 코드를 수락합니다. 따라서 이것은 웹훅 URL( http://localhost/webhook )이 됩니다.
@app.route("/webhook",methods=['POST'])
def respond():
print(request.json)
return Response(status=200)
서버 끝은 이제 일부 조건을 사용하여 트리거될 때 이 URL로 데이터를 보냅니다. 트리거된 조건이 충족되면 데이터가 URL로 전송됩니다.
# WebURL which will accept this Json file
webhook_url = "http://localhost/webhook"
# DB connection
cnxn = db_conn()
# SQL Query. Place your own query
df = pd.read_sql_query('''select * from sample''',cnxn)
# Convert sql result in json format
json_response = df.to_json(orient='records')
print(json)
# Send data to URL
while True:
if triggered: #Any condition as per your design logic
reponse = requests.post(
webhook_url,data=json.dumps(json_response),
headers = {'Content-Type': 'application/json'}
)
# Raise Error if data send not successfull 200 code for successfull
if reponse.status_code != 200:
print(reponse.status_code)
raise ValueError("Error")
이 Youtube 링크는 Github에서 사용되는 WebHook에 대해 자세히 설명합니다. 이것을 시청하십시오.
Reference
이 문제에 관하여(WebHook 또는 리버스 API), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/alokkumarsbg/webhook-or-reverse-api-37o1텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)