code: func (h *Handler) siteSessionGet(w http.ResponseWriter, r *http.Request, p httprouter.Params, ctx *SessionContext, site reversetunnel.RemoteSite) (interface{}, error) {
  	sessionID, err := session.ParseID(p.ByName("sid"))
  	if err != nil {
  		return nil, trace.Wrap(err)
  	}
  	log.Infof("web.getSetssion(%v)", sessionID)
  
  	clt, err := ctx.GetUserClient(site)
  	if err != nil {
  		return nil, trace.Wrap(err)
  	}
  
  	namespace := p.ByName("namespace")
  	if !services.IsValidNamespace(namespace) {
  		return nil, trace.BadParameter("invalid namespace %q", namespace)
  	}
  
  	sess, err := clt.GetSession(namespace, *sessionID)
  	if err != nil {
  		return nil, trace.Wrap(err)
  	}
  	return *sess, nil
  }
docs: // siteSessionGet gets the list of site session by id
  //
  // GET /v1/webapi/sites/:site/namespaces/:namespace/sessions/:sid
  //
  // Response body:
  //
  // {"session": {"id": "sid", "terminal_params": {"w": 100, "h": 100}, "parties": [], "login": "bob"}}
  //