Documentation
¶
Index ¶
- type ApiHandler
- func (h *ApiHandler) DeleteResultHandler(w http.ResponseWriter, r *http.Request)
- func (h *ApiHandler) DetailHandler(w http.ResponseWriter, r *http.Request)
- func (h *ApiHandler) GalleryHandler(w http.ResponseWriter, r *http.Request)
- func (h *ApiHandler) ListHandler(w http.ResponseWriter, r *http.Request)
- func (h *ApiHandler) PingHandler(w http.ResponseWriter, r *http.Request)
- func (h *ApiHandler) SearchHandler(w http.ResponseWriter, r *http.Request)
- func (h *ApiHandler) StatisticsHandler(w http.ResponseWriter, r *http.Request)
- func (h *ApiHandler) SubmitHandler(w http.ResponseWriter, r *http.Request)
- func (h *ApiHandler) SubmitSingleHandler(w http.ResponseWriter, r *http.Request)
- func (h *ApiHandler) TechnologyListHandler(w http.ResponseWriter, r *http.Request)
- func (h *ApiHandler) WappalyzerHandler(w http.ResponseWriter, r *http.Request)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ApiHandler ¶
type ApiHandler struct {
DbURI string
ScreenshotPath string
DB *gorm.DB
Wappalyzer *wappalyzer.Wappalyze
}
ApiHandler is an API handler
func NewApiHandler ¶
func NewApiHandler(uri string, screenshotPath string) (*ApiHandler, error)
NewApiHandler returns a new ApiHandler
func (*ApiHandler) DeleteResultHandler ¶
func (h *ApiHandler) DeleteResultHandler(w http.ResponseWriter, r *http.Request)
DeleteResultHandler deletes results from the database
@Summary Delete a result
@Description Deletes a result, by id, and all of its associated data from the database.
@Tags Results
@Accept json
@Produce json
@Param query body deleteResultRequest true "The result ID to delete"
@Success 200 {string} string "ok"
@Router /results/delete [post]
func (*ApiHandler) DetailHandler ¶
func (h *ApiHandler) DetailHandler(w http.ResponseWriter, r *http.Request)
DetailHandler returns the detail for a screenshot
@Summary Results detail
@Description Get details for a result.
@Tags Results
@Accept json
@Produce json
@Param id path int true "The screenshot ID to load."
@Success 200 {object} models.Result
@Router /results/detail/{id} [get]
func (*ApiHandler) GalleryHandler ¶
func (h *ApiHandler) GalleryHandler(w http.ResponseWriter, r *http.Request)
GalleryHandler gets a paginated gallery
@Summary Gallery
@Description Get a paginated list of results.
@Tags Results
@Accept json
@Produce json
@Param page query int false "The page to load."
@Param limit query int false "Number of results per page."
@Param technologies query string false "A comma seperated list of technologies to filter by."
@Param status query string false "A comma seperated list of HTTP status codes to filter by."
@Param perception query boolean false "Order the results by perception hash."
@Param failed query boolean false "Include failed screenshots in the results."
@Success 200 {object} galleryResponse
@Router /results/gallery [get]
func (*ApiHandler) ListHandler ¶
func (h *ApiHandler) ListHandler(w http.ResponseWriter, r *http.Request)
ListHandler returns a simple list of results
@Summary Results list
@Description Get a simple list of all results.
@Tags Results
@Accept json
@Produce json
@Success 200 {object} listResponse
@Router /results/list [get]
func (*ApiHandler) PingHandler ¶
func (h *ApiHandler) PingHandler(w http.ResponseWriter, r *http.Request)
PingHandler handles ping requests
@Summary Ping the server
@Description Returns a simple "pong" response to test server availability.
@Tags Health
@Accept json
@Produce json
@Success 200 {string} string "pong"
@Router /api/ping [get]
func (*ApiHandler) SearchHandler ¶
func (h *ApiHandler) SearchHandler(w http.ResponseWriter, r *http.Request)
SearchHandler handles search
@Summary Search for results
@Description Searches for results based on free form text, or operators.
@Tags Results
@Accept json
@Produce json
@Param query body searchRequest true "The search term to search for. Supports search operators: `title:`, `tech:`, `header:`, `body:`, `p:`"
@Success 200 {object} searchResult
@Router /search [post]
func (*ApiHandler) StatisticsHandler ¶
func (h *ApiHandler) StatisticsHandler(w http.ResponseWriter, r *http.Request)
StatisticsHandler returns database statistics
@Summary Database statistics
@Description Get database statistics.
@Tags Results
@Accept json
@Produce json
@Success 200 {object} statisticsResponse
@Router /statistics [get]
func (*ApiHandler) SubmitHandler ¶
func (h *ApiHandler) SubmitHandler(w http.ResponseWriter, r *http.Request)
SubmitHandler submits URL's for scans, writing them to the database.
@Summary Submit URL's for scanning
@Description Starts a new scanning routine for a list of URL's and options, writing results to the database.
@Tags Results
@Accept json
@Produce json
@Param query body submitRequest true "The URL scanning request object"
@Success 200 {string} string "Probing started"
@Router /submit [post]
func (*ApiHandler) SubmitSingleHandler ¶
func (h *ApiHandler) SubmitSingleHandler(w http.ResponseWriter, r *http.Request)
SubmitSingleHandler submits a URL to scan, returning the result.
@Summary Submit a single URL for probing
@Description Starts a new probing routine for a URL and options, returning the results when done.
@Tags Results
@Accept json
@Produce json
@Param query body submitSingleRequest true "The URL scanning request object"
@Success 200 {object} models.Result "The URL Result object"
@Router /submit/single [post]
func (*ApiHandler) TechnologyListHandler ¶
func (h *ApiHandler) TechnologyListHandler(w http.ResponseWriter, r *http.Request)
TechnologyListHandler lists technologies
@Summary Get technology results
@Description Get all the unique technology detected.
@Tags Results
@Accept json
@Produce json
@Success 200 {object} technologyListResponse
@Router /results/technology [get]
func (*ApiHandler) WappalyzerHandler ¶
func (h *ApiHandler) WappalyzerHandler(w http.ResponseWriter, r *http.Request)
WappalyzerHandler returns wappalyzer data
@Summary Get wappalyzer data
@Description Get all of the available wappalyzer data.
@Tags Results
@Accept json
@Produce json
@Success 200 {object} map[string]string
@Router /wappalyzer [get]
Click to show internal directories.
Click to hide internal directories.