# Over Engineering API
###### tags: `over-engineering`
## Search
GET https://over-engineering-backend.fly.dev/docs/v1/search
Run search result based on `q`.
### Request parameters
- `q`: Use the q query parameter to specify your search expression.
- `page`: The page of the search result.
- `limit`: Number of search results to return.
- `hashtags`: A List of hashtags to filter the search result.
### Response
```json
{
"query": "query1",
"total": 120,
result: [
{
"position": 1,
"title": "title1",
"link": "http"://domain.com",
"snippet": "snippet texts", // BE: trim to 300chars; FE: 3 lines
"lastmod": 1660199813, // unix time (seconds)
"about_this_result": {
"author": {
"name": "a1",
"link": "a1_page_link"
},
"series": {
"name": "series_name1",
"link": "series_link"
},
"hashtags": ["h1", "h2", "h3"]
"keywords": ["k1", "k2"],
"reading_time": 10 // number of mins
}
}
]
}
```
## Auto Complete
GET https://over-engineering-backend.fly.dev/docs/v1/search/auto-complete
Suggest extracted keywords (bigram) based on `q`.
- `q`: Use the q query parameter to specify your search expression.
- `max`: 0-10 auto-complete suggestions
### Response
```json
{
"query": "query1",
result: [
{ "name": "term 1", "type": "suggest1"},
{ "name": "term 2", "type": "suggest2"}
]
}
```
## Statistic: genre
GET https://over-engineering-backend.fly.dev/statistics/v1/count_by_genre
Count genre of the docs in a given year.
- `year`: the given year to count docs genre
- `top_n`: the most frequent genre
### Curl
```bash
curl -XGET "https://over-engineering-backend.fly.dev/statistics/v1/count_by_genre?year=2020" \
-H "Content-Type: application/json"
```
### Response
```json
[
{
"genre": "AI & Data",
"count": 1384
},
{
"genre": "DevOps",
"count": 692
},
{
"genre": "Elastic Stack on Cloud",
"count": 474
},
{
"genre": "IoT",
"count": 301
}
]
```
## Statistic: programming languages
GET https://over-engineering-backend.fly.dev/statistics/v1/prog_lang_count
Count the most frequent programming languages of docs
- `year`: the given year to count
- `top_n`: the most frequent programming languages
### Curl
```bash
curl -XGET "https://over-engineering-backend.fly.dev/statistics/v1/prog_lang_count?year=2019&top_n=10" \
-H "Content-Type: application/json"
```
### Response
```json
[
{
"prog_lang": "javascript",
"count": 12
},
{
"prog_lang": "golang",
"count": 7
},
{
"prog_lang": "html",
"count": 7
},
{
"prog_lang": "c",
"count": 5
},
{
"prog_lang": "python",
"count": 4
}
]
```
## Reference
- [Using REST to Invoke the API](https://developers.google.com/custom-search/v1/using_rest)
- [Query Parameters](https://developers.google.com/custom-search/v1/reference/rest/v1/cse/list)
- [serpapi](https://serpapi.com/)
- [Query Suggestion Service /suggest Protocol](https://www.google.com/support/enterprise/static/gsa/docs/admin/current/gsa_doc_set/xml_reference/query_suggestion.html)