Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Facilitate intent-based Routing #154

Closed
danielwiehl opened this issue May 27, 2022 · 0 comments
Closed

Facilitate intent-based Routing #154

danielwiehl opened this issue May 27, 2022 · 0 comments
Assignees
Labels

Comments

@danielwiehl
Copy link
Collaborator

Is your feature request related to a problem? Please describe.

We recommend using intent-based routing over url-based routing, especially for cross-application navigation, since the navigation flows are explicit, i.e., declared in the manifest, and to keep the microfrontend URLs an implementation detail of the micro apps that provide the microfrontends.

Note that the idea of intent-based navigation is not new and can be implemented using the intent client and an activator.

Describe the solution you'd like

As an alternative to passing a URL to the router, the router can be given a qualifier that qualifies the microfrontend to be displayed in the router outlet.

@danielwiehl danielwiehl self-assigned this May 27, 2022
danielwiehl added a commit that referenced this issue May 27, 2022
The router now facilitates intent-based navigation as an alternative to direct navigation to a URL. We recommend using intent-based navigation, especially for cross-application navigation, since the navigation flows are explicit, i.e., declared in the manifest, and to keep the microfrontend URLs an implementation detail of the micro apps that provide the microfrontends.

Note that the idea of intent-based navigation is not new and can be implemented using the intent client and an activator.

## Usage:

```ts
Beans.get(OutletRouter).navigate({entity: 'product'}, {params: {id: '123'}});
```ts

## Microfrontend Capability:
```json
 {
    "type": "microfrontend",
    "qualifier": {
      "entity": "product"
    },
    "params": [
      {"name": "id", "required": true}
    ],
    "properties": {
      "path": "product/:id",
    }
  }
```

closes #154
danielwiehl added a commit that referenced this issue May 27, 2022
The router now facilitates intent-based navigation as an alternative to direct navigation to a URL. We recommend using intent-based navigation, especially for cross-application navigation, since the navigation flows are explicit, i.e., declared in the manifest, and to keep the microfrontend URLs an implementation detail of the micro apps that provide the microfrontends.

Note that the idea of intent-based navigation is not new and can be implemented using the intent client and an activator.

## Usage:

```ts
Beans.get(OutletRouter).navigate({entity: 'product'}, {params: {id: '123'}});
```ts

## Microfrontend Capability:
```json
 {
    "type": "microfrontend",
    "qualifier": {
      "entity": "product"
    },
    "params": [
      {"name": "id", "required": true}
    ],
    "properties": {
      "path": "product/:id",
    }
  }
```

closes #154
danielwiehl added a commit that referenced this issue May 29, 2022
The router now facilitates intent-based navigation as an alternative to direct navigation to a URL. We recommend using intent-based navigation, especially for cross-application navigation, since the navigation flows are explicit, i.e., declared in the manifest, and to keep the microfrontend URLs an implementation detail of the micro apps that provide the microfrontends.

Note that the idea of intent-based navigation is not new and can be implemented using the intent client and an activator.

## Usage:

```ts
Beans.get(OutletRouter).navigate({entity: 'product'}, {params: {id: '123'}});
```ts

## Microfrontend Capability:
```json
 {
    "type": "microfrontend",
    "qualifier": {
      "entity": "product"
    },
    "params": [
      {"name": "id", "required": true}
    ],
    "properties": {
      "path": "product/:id",
    }
  }
```

closes #154
danielwiehl added a commit that referenced this issue May 29, 2022
The router now facilitates intent-based navigation as an alternative to direct navigation to a URL. We recommend using intent-based navigation, especially for cross-application navigation, since the navigation flows are explicit, i.e., declared in the manifest, and to keep the microfrontend URLs an implementation detail of the micro apps that provide the microfrontends.

Note that the idea of intent-based navigation is not new and can be implemented using the intent client and activator.

## Usage:

```ts
Beans.get(OutletRouter).navigate({entity: 'product'}, {params: {id: '123'}});
```ts

## Microfrontend Capability:
```json
 {
    "type": "microfrontend",
    "qualifier": {
      "entity": "product"
    },
    "params": [
      {"name": "id", "required": true}
    ],
    "properties": {
      "path": "product/:id",
    }
  }
```

closes #154
danielwiehl added a commit that referenced this issue May 31, 2022
The router now facilitates intent-based navigation as an alternative to direct navigation to a URL. We recommend using intent-based navigation, especially for cross-application navigation, since the navigation flows are explicit, i.e., declared in the manifest, and to keep the microfrontend URLs an implementation detail of the micro apps that provide the microfrontends.

Note that the idea of intent-based navigation is not new and can be implemented using the intent client and activator.

## Usage:

```ts
Beans.get(OutletRouter).navigate({entity: 'product'}, {params: {id: '123'}});
```ts

## Microfrontend Capability:
```json
 {
    "type": "microfrontend",
    "qualifier": {
      "entity": "product"
    },
    "params": [
      {"name": "id", "required": true}
    ],
    "properties": {
      "path": "product/:id",
    }
  }
```

closes #154
danielwiehl added a commit that referenced this issue May 31, 2022
The router now facilitates intent-based navigation as an alternative to direct navigation to a URL. We recommend using intent-based navigation, especially for cross-application navigation, since the navigation flows are explicit, i.e., declared in the manifest, and to keep the microfrontend URLs an implementation detail of the micro apps that provide the microfrontends.

Note that the idea of intent-based navigation is not new and can be implemented using the intent client and activator.

## Usage:

```ts
Beans.get(OutletRouter).navigate({entity: 'product'}, {params: {id: '123'}});
```ts

## Microfrontend Capability:
```json
 {
    "type": "microfrontend",
    "qualifier": {
      "entity": "product"
    },
    "params": [
      {"name": "id", "required": true}
    ],
    "properties": {
      "path": "product/:id",
    }
  }
```

closes #154
danielwiehl added a commit that referenced this issue Jun 2, 2022
The router now facilitates intent-based navigation as an alternative to direct navigation to a URL. We recommend using intent-based navigation, especially for cross-application navigation, since the navigation flows are explicit, i.e., declared in the manifest, and to keep the microfrontend URLs an implementation detail of the micro apps that provide the microfrontends.

Note that the idea of intent-based navigation is not new and can be implemented using the intent client and activator.

## Usage:

```ts
Beans.get(OutletRouter).navigate({entity: 'product'}, {params: {id: '123'}});
```ts

## Microfrontend Capability:
```json
 {
    "type": "microfrontend",
    "qualifier": {
      "entity": "product"
    },
    "params": [
      {"name": "id", "required": true}
    ],
    "properties": {
      "path": "product/:id",
    }
  }
```

closes #154
danielwiehl added a commit that referenced this issue Jun 3, 2022
The router now facilitates intent-based navigation as an alternative to direct navigation to a URL. We recommend using intent-based navigation, especially for cross-application navigation, since the navigation flows are explicit, i.e., declared in the manifest, and to keep the microfrontend URLs an implementation detail of the micro apps that provide the microfrontends.

Note that the idea of intent-based navigation is not new and can be implemented using the intent client and activator.

## Usage:

```ts
Beans.get(OutletRouter).navigate({entity: 'product'}, {params: {id: '123'}});
```

## Microfrontend Capability:
```json
 {
    "type": "microfrontend",
    "qualifier": {
      "entity": "product"
    },
    "params": [
      {"name": "id", "required": true}
    ],
    "properties": {
      "path": "product/:id",
    }
  }
```

closes #154
danielwiehl added a commit that referenced this issue Jun 3, 2022
The router now facilitates intent-based navigation as an alternative to direct navigation to a URL. We recommend using intent-based navigation, especially for cross-application navigation, since the navigation flows are explicit, i.e., declared in the manifest, and to keep the microfrontend URLs an implementation detail of the micro apps that provide the microfrontends.

Note that the idea of intent-based navigation is not new and can be implemented using the intent client and activator.

## Usage:

```ts
Beans.get(OutletRouter).navigate({entity: 'product'}, {params: {id: '123'}});
```

## Microfrontend Capability:
```json
 {
    "type": "microfrontend",
    "qualifier": {
      "entity": "product"
    },
    "params": [
      {"name": "id", "required": true}
    ],
    "properties": {
      "path": "product/:id",
    }
  }
```

closes #154
danielwiehl added a commit that referenced this issue Jun 4, 2022
The router now facilitates intent-based navigation as an alternative to direct navigation to a URL. We recommend using intent-based navigation, especially for cross-application navigation, since the navigation flows are explicit, i.e., declared in the manifest, and to keep the microfrontend URLs an implementation detail of the micro apps that provide the microfrontends.

Note that the idea of intent-based navigation is not new and can be implemented using the intent client and activator.

## Usage:

```ts
Beans.get(OutletRouter).navigate({entity: 'product'}, {params: {id: '123'}});
```

## Microfrontend Capability:
```json
 {
    "type": "microfrontend",
    "qualifier": {
      "entity": "product"
    },
    "params": [
      {"name": "id", "required": true}
    ],
    "properties": {
      "path": "product/:id",
    }
  }
```

closes #154
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant