/// <summary>
        /// Produces the Json Api response that represents the given @object.
        /// </summary>
        /// <param name="object">The object to serialize.</param>
        /// <param name="requestUri">The request uri that prompted the response.</param>
        /// <returns>A <see cref="JToken"/> representing the object.</returns>
        public JToken Serialize(object @object, Uri requestUri)
        {
            var request      = new HttpRequestMessage(HttpMethod.Get, requestUri);
            var queryContext = GetQueryContext(request.GetQueryNameValuePairs());

            _serializer.QueryContext = queryContext;

            var preprocessResult = _serializer.PreprocessContent(@object, new T(), requestUri);

            return(JsonApiSerializer.Serialize(preprocessResult));
        }
        /// <summary>
        /// Produces the Json Api response that represents the given @object.
        /// </summary>
        /// <param name="object">The object to serialize.</param>
        /// <param name="requestUri">The request uri that prompted the response.</param>
        /// <param name="config">The configuration to be used for serialization.</param>
        /// <returns>A <see cref="JToken"/> representing the object.</returns>
        public JToken Serialize(object @object, Uri requestUri, JsonApiConfiguration config = null)
        {
            if (config == null)
            {
                config = new JsonApiConfiguration();
            }

            var request = new HttpRequestMessage(HttpMethod.Get, requestUri);
            var queryContext = GetQueryContext(request.GetQueryNameValuePairs());

            _serializer.QueryContext = queryContext;

            var preprocessResult = _serializer.PreprocessContent(@object, new T(), requestUri, config);
            return JsonApiSerializer.Serialize(preprocessResult);
        }