django

django restframework 사용하기

iiliiiili 2020. 12. 22. 16:05

 

 

 

from django.shortcuts import render

from rest_framework.views import APIView

from rest_framework.response import Response

from rest_framework import status

from elasticsearch import Elasticsearch

from elasticsearch_dsl.connections import connections

 

 

class SearchView(APIView):

    def get(self, request):

        es = Elasticsearch(['http://192.168.0.1:9200'], http_auth=('elastic','password'), timeout=300)

        #es = Elasticsearch(hosts="http://elastic:password!@192.168.0.1:9200/", timeout=300)

        search_word = request.query_params.get('search')

        if not search_word:

            return Response(status=status.HTTP_400_BAD_REQUEST, data={'message': 'search word param is missing'})

        docs = es.search(index='firewall*',

                         body={

                             "size": 10,

                             "from": 1,

                             "_source": {

                                 "includes": ["@timestamp", "src_ip","dst_ip","dst_port"]

                                },

                             "sort":

                                 { "@timestamp":{ "order" :"desc"} },

                             "query": {

                                 "multi_match": {

                                     "query": search_word,

                                     "fields": ["src_ip"]}

                             }

                         })

        data_list = docs['hits']

        return Response(data_list)