golangのhttpフレームワークのginを利用して、特定リクエストのタイムアウトを設定する方法がわからないです。

sever全体のタイムアウトの設定方法は理解しています。

s := &http.Server{
    Addr:              ":8080",
    Handler:           r,
    ReadTimeout:       5 * time.Second,
    ReadHeaderTimeout: 5 * time.Second,
    WriteTimeout:      20 * time.Second,
    IdleTimeout:       120 * time.Second,
}

この場合は、全てのハンドラにおいて例えばリクエストが20秒返ってこない時タイムアウトになりますが、
特定ハンドラにおけるタイムアウトの設定を個別に設定したい場合があると思います。

調べたところ、context.WithTimeoutなどが使えるのかなと思っているのですが、そこから詰まっています。

ぜひ知っている方いたら教えていただけると助かります。