Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

RFC: RestSharp.Maui companion package for platform-specific quirks

Ouverte
#2,388 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Évaluation

Difficulté
5/5
Temps estimé
Plus d'une semaine
Accessibilité débutants
25/100
Type d'issue
Fonctionnalité
Clarté
À clarifier
Activité
Calme
Stack technique
csharp
Domaine
mobile-dev

Piste de recherche

Commencez par examiner l’issue dépendante #2387 et la discussion de conception dans #2168, puis comparez la couverture proposée pour #2168 et #2385. Aucun fichier d’implémentation ni aucun test n’est nommé. Le travail est considéré comme terminé lorsqu’une décision a été prise quant à la création du package compagnon, à son nom, à sa matrice TFM et à son périmètre initial.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

feature-request rfc

Motivation

A growing set of MAUI / mobile-specific gotchas can't be fixed in core RestSharp because:

  • Core targets netstandard2.0 / net8.0+ and must remain free of iOS / Android workload dependencies.
  • Platform fixes often require calling into Foundation / NSURLSession / Java.Net types that only exist under TFM-specific workloads (net9.0-ios, net9.0-android, etc.).
  • Documenting the workarounds (see #2387) helps, but every consumer ends up copy-pasting the same recipe.

A small TFM-targeted companion package could collect these recipes as one-liner extension methods.

Proposed surface

// RestSharp.Maui
public static class RestClientOptionsExtensions {
    /// <summary>
    /// Configures the underlying handler to suppress NSURLSession's cookie storage,
    /// so Set-Cookie headers reach RestSharp's per-request parser intact.
    /// Multi-tenant safe — no shared cookie state at any layer.
    /// </summary>
    public static RestClientOptions UseIosCookieFix(this RestClientOptions options);

    // Room for future fixes:
    // - UseIosCertificatePinning(...)
    // - UseAndroidNetworkSecurityConfig(...)
    // - UseEphemeralNetworking()
}

Usage in a MAUI app:

var options = new RestClientOptions(baseUrl).UseIosCookieFix();

Open questions

  1. Naming. RestSharp.Maui vs RestSharp.Platforms vs separate RestSharp.iOS + RestSharp.Android packages. I lean toward RestSharp.Maui — single package, MAUI is the dominant consumer of platform-specific HTTP quirks.
  2. TFM matrix. Probably net8.0-ios, net9.0-ios, net10.0-ios, net8.0-android, net9.0-android, net10.0-android, plus netstandard2.0 no-op fallbacks so consumers can reference it from shared projects without conditional compilation.
  3. Maintenance burden. Every iOS / Android SDK bump may need a sanity check. Worth it only if 2-3+ platform fixes accumulate. Today we'd ship with just UseIosCookieFix.
  4. Discovery. Would need a README pointer and a docs section explaining when to reach for it. Risk: people who don't read docs still hit the original bug.

Decision needed

  • Ship now with a single helper (UseIosCookieFix) covering #2168 / #2385?
  • Wait until 2-3 platform fixes accumulate to justify the package?
  • Reject and keep all platform recipes in docs only?

Tracking: depends on #2387 (docs landing first) and follows from the design discussion in #2168.

Langage dominant
C#
Étoiles
9.8k
Forks
2.3k
Merge moyen
11 j 21 h
PR mergées (30 j)
2

Préparer son environnement

Ouvrir dans Codespaces

Lance le conteneur de développement du projet dans votre navigateur, avec votre propre compte GitHub.

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de restsharp/RestSharp

Toutes les issues de restsharp/RestSharp

Issues similaires

Plus d'issues C#

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.