protected override void OnReceivedRequest(HttpRequest request) { // Process HTTP request methods if (request.Method == "HEAD") { SendResponseAsync(Response.MakeHeadResponse()); } else if (request.Method == "GET") { // Get the cache value string cache; if (CommonCache.GetInstance().GetCache(request.Url, out cache)) { // Response with the cache value SendResponseAsync(Response.MakeGetResponse(cache)); } else { SendResponseAsync(Response.MakeErrorResponse("Required cache value was not found for the key: " + request.Url)); } } else if ((request.Method == "POST") || (request.Method == "PUT")) { // Set the cache value CommonCache.GetInstance().SetCache(request.Url, request.Body); // Response with the cache value SendResponseAsync(Response.MakeOkResponse()); } else if (request.Method == "DELETE") { // Delete the cache value string cache; if (CommonCache.GetInstance().DeleteCache(request.Url, out cache)) { // Response with the cache value SendResponseAsync(Response.MakeGetResponse(cache)); } else { SendResponseAsync(Response.MakeErrorResponse("Deleted cache value was not found for the key: " + request.Url)); } } else if (request.Method == "OPTIONS") { SendResponseAsync(Response.MakeOptionsResponse()); } else if (request.Method == "TRACE") { SendResponseAsync(Response.MakeTraceResponse(request.Cache)); } else { SendResponseAsync(Response.MakeErrorResponse("Unsupported HTTP method: " + request.Method)); } }
protected override void OnReceivedRequest(HttpRequest request) { // Process HTTP request methods if (request.Method == "HEAD") { SendResponseAsync(Response.MakeHeadResponse()); } else if (request.Method == "GET") { string key = request.Url; // Decode the key value key = Uri.UnescapeDataString(key); key = key.Replace("/api/cache", "", StringComparison.InvariantCultureIgnoreCase); key = key.Replace("?key=", "", StringComparison.InvariantCultureIgnoreCase); if (string.IsNullOrEmpty(key)) { // Response with all cache values SendResponseAsync(Response.MakeGetResponse(CommonCache.GetInstance().GetAllCache(), "application/json; charset=UTF-8")); } // Get the cache value by the given key else if (CommonCache.GetInstance().GetCacheValue(key, out var value)) { // Response with the cache value SendResponseAsync(Response.MakeGetResponse(value)); } else { SendResponseAsync(Response.MakeErrorResponse("Required cache value was not found for the key: " + key, 404)); } } else if ((request.Method == "POST") || (request.Method == "PUT")) { string key = request.Url; string value = request.Body; // Decode the key value key = Uri.UnescapeDataString(key); key = key.Replace("/api/cache", "", StringComparison.InvariantCultureIgnoreCase); key = key.Replace("?key=", "", StringComparison.InvariantCultureIgnoreCase); // Put the cache value CommonCache.GetInstance().PutCacheValue(key, value); // Response with the cache value SendResponseAsync(Response.MakeOkResponse()); } else if (request.Method == "DELETE") { string key = request.Url; // Decode the key value key = Uri.UnescapeDataString(key); key = key.Replace("/api/cache", "", StringComparison.InvariantCultureIgnoreCase); key = key.Replace("?key=", "", StringComparison.InvariantCultureIgnoreCase); // Delete the cache value if (CommonCache.GetInstance().DeleteCacheValue(key, out var value)) { // Response with the cache value SendResponseAsync(Response.MakeGetResponse(value)); } else { SendResponseAsync(Response.MakeErrorResponse("Deleted cache value was not found for the key: " + key, 404)); } } else if (request.Method == "OPTIONS") { SendResponseAsync(Response.MakeOptionsResponse()); } else if (request.Method == "TRACE") { SendResponseAsync(Response.MakeTraceResponse(request.Cache)); } else { SendResponseAsync(Response.MakeErrorResponse("Unsupported HTTP method: " + request.Method)); } }