Ejemplo n.º 1
0
        public void JsonApiConfiguration_Validate_NoResourceConfiguration_DoesNotThrow()
        {
            var config = new JsonApiConfiguration
            {
                ResourceConfigurations = new ResourceConfigurationsBuilder().Build()
            };

            Assert.DoesNotThrow(() => config.Validate());
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Configures JSON API message handler and media type formatter on the given <see cref="HttpConfiguration"/> instance.
        /// </summary>
        /// <param name="httpConfiguration">The <see cref="HttpConfiguration"/> instance.</param>
        /// <param name="configurationAction">An action to modify the default <see cref="JsonApiConfiguration"/>.</param>
        /// <returns>The <see cref="HttpConfiguration"/> instance for method chaining purposes.</returns>
        public static HttpConfiguration UseJsonApi(this HttpConfiguration httpConfiguration, Action <JsonApiConfiguration> configurationAction)
        {
            if (httpConfiguration == null)
            {
                throw new ArgumentNullException(nameof(httpConfiguration));
            }
            if (configurationAction == null)
            {
                throw new ArgumentNullException(nameof(configurationAction));
            }

            var jsonApiConfiguration = new JsonApiConfiguration();

            configurationAction(jsonApiConfiguration);
            jsonApiConfiguration.Validate();

            httpConfiguration.MessageHandlers.Add(new JsonApiDelegatingHandler(jsonApiConfiguration));

            httpConfiguration.Formatters.Add(new JsonApiMediaTypeFormatter(jsonApiConfiguration,
                                                                           () => new DocumentParser(jsonApiConfiguration),
                                                                           () => new DocumentBuilder(jsonApiConfiguration)));

            return(httpConfiguration);
        }