ishkawa / APIKit

Type-safe networking abstraction layer that associates request type with response type.
MIT License
2k stars 205 forks source link

Add `TextPlainParameters` to support sending plain text request body #317

Open thatnaoki opened 7 months ago

thatnaoki commented 7 months ago

While working with Apple's AdServices framework, I encountered a scenario where I needed to make a POST request to [https://api-adservices.apple.com/api/v1/](https://developer.apple.com/documentation/adservices/aaattribution/attributiontoken()). During this process, I noticed that the server expected the request body to have a content type of text/plain.

To better support this use case and enhance APIKit's compatibility with the AdServices API, I introduced TextPlainParameters. This new type conforms to the BodyParameters protocol and allows developers to serialize plain text as the HTTP request body. It automatically sets the Content-Type header to text/plain, ensuring that the request meets the server's expectations.

By adding TextPlainParameters, APIKit can now seamlessly handle situations where the AdServices API requires the request body to be in plain text format. This improvement not only facilitates smoother integration with the AdServices API but also increases the flexibility of APIKit when working with other APIs that expect plain text request bodies.

This pull request aims to provide developers with a convenient way to interact with the AdServices API using APIKit, while also extending the library's capabilities to support a wider range of API requirements.

Please let me know if there's any problem or question. Thank you.